我有一个如下所示的 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 列拆分为多个列,并且列 Name
和 B
未修改。新数据框应如下所示:
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
之后,新列应开始。
我怎么能这样做?我想我可以使用正则表达式来解决这个问题。
答案 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