使用正则表达式拆分熊猫数据框列条目并创建新列

时间:2021-03-30 14:12:54

标签: python regex pandas

我有一个如下所示的 Pandas 数据框:

Name A B
'X' 'cde: 2.00 GB  ghi: 4.00 GB  ab-6: 9.00 GB' 'abc'
'Y' 'cde: 1.00 GB  ghi: 6.00 GB  ab-6: 12.00 GB' 'abc'

我想要做的是一个新的 Pandas 数据框,其中 A 列拆分为多个列,并且列 NameB 未修改。新数据框应如下所示:

Name A_cde A_ghi A_ab-6 B
'X' 2.00 GB 4.00 GB 9.00 GB 'abc'
'Y' 1.00 GB 6.00 GB 12.00 GB 'abc'

这意味着,我想在 : 之前和 GB 之后拆分列 'A'。 : 之前的所有内容都应该是新列的后缀。 : 之后和 GB 之前的所有内容都应作为列值包含在内,而在 GB 之后,新列应开始。

我怎么能这样做?我想我可以使用正则表达式来解决这个问题。

1 个答案:

答案 0 :(得分:0)

tmp = df.A.str.extract(
    r"cde: (?P<A_cde>.*) ghi: (?P<A_ghi>.*) ab-6: (?P<A_ab_6>.*)"
)

df_out = pd.concat([df["Name"], tmp, df["B"]], axis=1)
print(df_out)

打印:

  Name     A_cde     A_ghi    A_ab_6    B
0    X  2.00 GB   4.00 GB    9.00 GB  abc
1    Y  1.00 GB   6.00 GB   12.00 GB  abc
相关问题