gpt4 book ai didi

python - 将列表拆分为 Pandas 中的列

转载 作者:太空宇宙 更新时间:2023-11-04 11:15:34 25 4
gpt4 key购买 nike

我有这样一个数据框

df = (pd.DataFrame({'ID': ['ID1', 'ID2', 'ID3'], 
'Values': [['AB', 'BC'], np.NaN, ['AB', 'CD']]}))

df

ID Values
0 ID1 [AB, BC]
1 ID2 NaN
2 ID3 [AB, CD]

我想将列表中的项目拆分成这样的列

    ID  AB  BC  CD
0 ID1 1 1 0
1 ID2 0 0 0
2 ID3 1 0 1

最佳答案

Pandas 函数处理缺失值很好,所以使用 Series.str.joinSeries.str.get_dummies , DataFrame.pop用于提取列并最后加入到原始数据:

df = df.join(df.pop('Values').str.join('|').str.get_dummies())
print (df)
ID AB BC CD
0 ID1 1 1 0
1 ID2 0 0 0
2 ID3 1 0 1

编辑:如果值不是列表,则只有列表的字符串表示使用 ast.literal_eval 来转换为列表:

import ast

df = (df.join(df.pop('Values')
.apply(ast.literal_eval)
.str.join('|')
.str.get_dummies()))

关于python - 将列表拆分为 Pandas 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57074442/

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