gpt4 book ai didi

python - 将多个子字符串匹配模式提取到列中

转载 作者:行者123 更新时间:2023-12-05 09:10:10 26 4
gpt4 key购买 nike

我的 Pandas 数据框有这样的字符串

A=1;B=3;C=c6
A=2;C=c7;D=8

我想将每个字段中的值提取到单独的列中,然后像这样使用字段名称作为列

A    B    C    D
1 3 c6 NaN
2 NaN c7 8

我试过拆分 df.str.split('=|;', expand=True) 但它将值和字段拆分为单独的列

我也尝试使用 df.str.extract(r'=\s*([^\.]*)\s*\;', expand=True) 但它只返回值的第一次出现。

谢谢你的帮助

最佳答案

我认为这里可以在列表理解中使用拆分 - 首先通过 ; 然后通过 = 并将其转换为字典,所以最后可以使用 DataFrame 构造函数:

print (df)
col
0 A=1;B=3;C=c6
1 A=2;C=c7;D=8

L = [dict([y.split('=') for y in x.split(';')]) for x in df['col']]

df = pd.DataFrame(L)
print (df)
A B C D
0 1 3 c6 NaN
1 2 NaN c7 8

详细信息:

print (L)
[{'A': '1', 'B': '3', 'C': 'c6'}, {'A': '2', 'C': 'c7', 'D': '8'}]

关于python - 将多个子字符串匹配模式提取到列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61744204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com