我在名為“Fields”的 pandas 數(shù)據(jù)框列中有一個(gè)以下字符串。“Fields”列是從 csv 文件中提取的單個(gè)列。鑒于整個(gè)數(shù)據(jù)框中有 1170 行,如果我要將這些值解析為單獨(dú)的列,則使用 pandas str split 或正則表達(dá)式需要 6 分 30 秒。有沒(méi)有什么有效的方法可以更快地執(zhí)行此任務(wù)?使用 Pandas split 的示例:for i, row in df.iterrows(): df['uuid'][i] = row['Arguments'].split("uuid=")[1].split(',')[0]使用正則表達(dá)式的示例:for i, row in df.iterrows(): arg = row['Fields'] uuid = re.search('driveUuid=(.+?),', arg).group(1) line = re.search('line=(.+?),', arg).group(1)我有辦法解決這個(gè)問(wèn)題,但似乎效率不高。“字段”列的一項(xiàng)uuid=88c65b1d,行=主,序列=ABC12312,位置=頂部:6,插槽=6,樓層=頂部,版本=E004
1 回答

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
d['uuid'] = d['Fields'].str.extract('uuid=(.+?),')
正如Henry Yik在評(píng)論中指出的
d["Fields"].str.extract('(?:drive)?Uuid=(.+?),line=(.+?),', flags=re.I)
添加回答
舉報(bào)
0/150
提交
取消