为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas:将字符串提取到各个列的有效方法

Pandas:将字符串提取到各个列的有效方法

汪汪一只猫 2023-10-06 19:39:23
我在名为“Fields”的 pandas 数据框列中有一个以下字符串。“Fields”列是从 csv 文件中提取的单个列。鉴于整个数据框中有 1170 行,如果我要将这些值解析为单独的列,则使用 pandas str split 或正则表达式需要 6 分 30 秒。有没有什么有效的方法可以更快地执行此任务?使用 Pandas split 的示例:for i, row in df.iterrows():    df['uuid'][i] = row['Arguments'].split("uuid=")[1].split(',')[0]使用正则表达式的示例:for i, row in df.iterrows():    arg = row['Fields']        uuid = re.search('driveUuid=(.+?),', arg).group(1)    line = re.search('line=(.+?),', arg).group(1)我有办法解决这个问题,但似乎效率不高。“字段”列的一项uuid=88c65b1d,行=主,序列=ABC12312,位置=顶部:6,插槽=6,楼层=顶部,版本=E004
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

使用pandas.Series.str.extract

d['uuid'] = d['Fields'].str.extract('uuid=(.+?),')

正如Henry Yik在评论中指出的

d["Fields"].str.extract('(?:drive)?Uuid=(.+?),line=(.+?),', flags=re.I)


查看完整回答
反对 回复 2023-10-06
  • 1 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信