前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-科学计算-pandas-09-df列字符串操作2

Python-科学计算-pandas-09-df列字符串操作2

作者头像
zishendianxia
发布2023-03-01 14:20:58
4740
发布2023-03-01 14:20:58
举报
文章被收录于专栏:Python工程师Python工程师

系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 pandas:0.19.2

  • 这个系列讲讲Python的科学计算版块
  • 今天讲讲pandas模块: 对列的每一个元素进行同样的字符串操作
  • 今天讲其中的1个操作: split

Part 1:目标

  1. 已知Df某列都是字符串,每一个字符串都有一个文件与其对应,需要对原文件名称进行修改
  2. 存在以下规律:
    • 原文件名格式P10-CD1.txt,只保留-前的文件名部分,新文件名P10.txt
  3. 实现方式:
    • 获取 - 前文件名
    • 获取 . 后的文件类型
    • 组合两者
    • 加入到原来的Df中

修改前后文件名

Part 2:代码

代码语言:javascript
复制
import pandas as pd

dict_1 = {"file_name": ["P10-CD1.txt", "P252-12EF.pdf", "P369-96BD.txt",
                        "P4-G852F.pdf", "P5-H225D.txt", "P657-36LF.pdf"],
          "order_id": [1, 2, 3, 4, 5, 6]}

df_1 = pd.DataFrame(dict_1, columns=["file_name", "order_id"])
print("初始DF:\n", df_1)

print("\n")
df_2 = df_1["file_name"].str.split("-", expand=True)
df_2.columns = ["文件名", "其它"]
print("获取新的文件名:\n", df_2)

print("\n")
df_3 = df_1["file_name"].str.split(".", expand=True)
df_3.columns = ["其它", "文件类型"]
print("获取文件类型:\n", df_3)

print("\n")
se_1 = df_2["文件名"] + "." + df_3["文件类型"]
print("新的文件名:\n", se_1)
print(type(se_1))

print("\n")
df_1["new_file_name"] = se_1
print("加入新的文件名:\n", df_1)
print(type(df_1))

代码截图

执行结果

Part 3:部分代码解读

  1. df_2 = df_1["file_name"].str.split("-", expand=True),对列file_name的每个元素实行split("-")操作,理论上生成一个列表,expand=True表示将生成列表结果分为多个列
  2. se_1 = df_2["文件名"] + "." + df_3["文件类型"],实现两个Df之间对应每个元素的字符串连接操作,生成一个Series对象
  3. df_1["new_file_name"] = se_1,df_1新增一列new_file_name

本文为原创作品

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python及Django网站开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档