gpt4 book ai didi

python - Pandas 在数据框中拆分一列并获取标题

转载 作者:行者123 更新时间:2023-11-28 21:06:40 24 4
gpt4 key购买 nike

我有一个带有“A”列的 Pandas 数据框

dfc = pd.DataFrame( {"A": ['AB=0.246154;ABP=39.3908;AC=3', 'AB=0.3;ABP=9.95901;AC=2;AF=0.333333', 'AB=0;ABP=0;AC=6;AF=1;AN=6;AO=86', 'AB=0.461538;ABP=3.51141;AC=2']})

我想拆分数据框中的“A”列并获取新的数据框,例如

    A   AB  ABP AC  AF  AN  AO 
0 AB=0.246154;ABP=39.3908;AC=3 0.246154 39.3908 3 None None None
1 AB=0.3;ABP=9.95901;AC=2;AF=0.333333 0.3 9.95901 2 0.333333 None None
2 AB=0;ABP=0;AC=6;AF=1;AN=6;AO=86 0 0 6 1 6 86
3 AB=0.461538;ABP=3.51141;AC=2 0.461538 3.51141 2 None None None

我尝试使用拆分数据框列,

dfc.A.str.split(';', expand = True)

但它提供了新的数据框,例如,

             0            1     2            3     4      5
0 AB=0.246154 ABP=39.3908 AC=3 None None None
1 AB=0.3 ABP=9.95901 AC=2 AF=0.333333 None None
2 AB=0 ABP=0 AC=6 AF=1 AN=6 AO=86
3 AB=0.461538 ABP=3.51141 AC=2 None None None

如何使用列中“=”之前的文本向列添加标题,并将这个新数据框添加到原始数据框?是否有 pythonic 方式在一行中完成这两个操作?

谢谢

最佳答案

尝试下面的方法,将A列的每个元素进行字符串拆分后,分别构造一个Series/dictionary,index/key会成为结果中的header(使用pd.concat拼接如果需要,带有新数据框的原始 A 列):

dfc.A.apply(lambda x: pd.Series(dict(s.split("=") for s in x.split(";"))))

# AB ABP AC AF AN AO
#0 0.246154 39.3908 3 NaN NaN NaN
#1 0.3 9.95901 2 0.333333 NaN NaN
#2 0 0 6 1 6 86
#3 0.461538 3.51141 2 NaN NaN NaN

关于python - Pandas 在数据框中拆分一列并获取标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42522945/

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