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

Python Pandas:将字符串提取到单个列中的有效方法,python,regex,pandas,Python,Regex,Pandas,在名为“Fields”的数据框列中有一个字符串。“字段”列是从csv文件中提取的单列。 给定整个数据帧中的1170行,如果要将这些值解析为单个列,使用split或regex需要6分30秒。有没有什么有效的方法可以更快地完成这项任务 使用熊猫分割的示例: for i, row in df.iterrows(): df['uuid'][i] = row['Arguments'].split("uuid=")[1].split(',')[0] 使用正则表达式的示例: fo

在名为“Fields”的数据框列中有一个字符串。“字段”列是从csv文件中提取的单列。 给定整个数据帧中的1170行,如果要将这些值解析为单个列,使用split或regex需要6分30秒。有没有什么有效的方法可以更快地完成这项任务

使用熊猫分割的示例:

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,线路=main,串行=ABC12312,位置=top:6,插槽=6,地板=top,版本=E004

使用

正如在评论中提到的

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

试试看。@HenryYik,提取要快得多。感谢查看您的示例,您实际上可以执行
d[“Fields”].str.extract('(?:drive)?Uuid=(.+?),line=(.+?),',flags=re.I)
d["Fields"].str.extract('(?:drive)?Uuid=(.+?),line=(.+?),', flags=re.I)