Python-科学计算-pandas-08-列字符串操作1

微信公众号原文

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

  • 这个系列讲讲Python的科学计算版块
  • 今天讲讲pandas模块:对列的每一个元素进行同样的字符串操作
  • 今天讲其中的3个操作:切片,字符串替换,字符串连接

Part 1:目标

  1. 已知Df某列都是字符串,每一个字符串都有一个文件与其对应,目标在于获取每一个文件的名称
  2. 存在以下规律:
    • 字符串的最后一个字符是D或者F
    • 其中D表示该字符串是一个txt文本文件的名称
    • 其中F表示该字符串是一个pdf文本文件的名称
    • 这些文件的名称最终组成是:FINAL_列元素.文件类型
  3. 实现方法:
    • 提取该列每个元素的最后一位字符
    • 根据规则进行替换,获取文件类型
    • 字符串连接,加上常量 FINAL_.

Part 2:代码

import pandas as pd

dict_1 = {"C1": ["P1-CD", "P2-EF", "P3-BD", "P4-GF", "P5-HD", "P6-LF"],
          "C2": [0.5, 0.8, 1.0, 5, 6, 2]}

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

print("\n")
df_1["flag"] = df_1["C1"].str[-1:]
print("列每个元素切片:\n", df_1)

print("\n")
df_1["newFlag"] = df_1["flag"].replace("D", "txt").replace("F", "pdf")
print("列每个元素字符替换:\n", df_1)

print("\n")
df_1["FINAL"] = "FINAL_" + df_1["C1"] + "." + df_1["newFlag"]
print("不同列每个元素连接:\n", df_1)

代码截图

1.png

执行结果

2.png

Part 3:部分代码解读

  1. df_1["C1"].str[-1:],将C1列每个元素字符串化,并对其分别进行切片操作,其实就是将切片操作分别作用于每个元素

2.df_1["flag"].replace("D", "txt").replace("F", "pdf"),执行字符串替换作用,将代码改为df_1["newFlag"] = df_1["flag"].str.replace("D", "txt").replace("F", "pdf"),也就是按照上一条的逻辑,将每一个元素字符串化,执行效果是一样的

3.df_1["FINAL"] = "FINAL_" + df_1["C1"] + "." + df_1["newFlag"],字符串连接。效果看起来像是,先将标量 FINAL_. 向量化,然后执行元素间分别连接

  1. 综上,整体效果是按列整体进行字符串操作,无需遍历循环,大大减少代码量

本文为原创作品,欢迎分享朋友圈

长按图片识别二维码,关注本公众号
Python 优雅 帅气


12x0.8.jpg
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容