gpt4 book ai didi

python - 数据框:coll 中数组的 get_dummies

转载 作者:行者123 更新时间:2023-12-02 02:47:20 25 4
gpt4 key购买 nike

使用 Python/Pandas

我有一个非常简单的 csv 文件,除了一列:源是一个数组。

我的表格示例:

Column A                  |Column B  |Column C  |Column D  |  
__________________________|__________|__________|__________|
[Water, Food, Groceries] | 0 |true |9 |
[Water, Desert, Sand] | 1 |false |1 |
[Earth, Groceries] | 2 |null |12 |
[Air, Food, Car] | 3 |true |8 |
[Cristal, Love, Groceries]| 4 |false |0 |

我想要实现的目标:

Column B  |Column C  |Column D  |column_a_water |column_a_food  | column_a_groceries |
__________|__________|__________|_______________|_______________|____________________|
0 |true |9 | 1 | 1 | 1 |
1 |false |1 | 1 | 0 | 0 |
2 |null |12 | 0 | 0 | 1 |
3 |true |8 | 0 | 1 | 0 |
4 |false |0 | 0 | 0 | 1 |

使用 pandas get_dummies,我可以使其与 C 列一起工作,但不能与 A 列一起工作。使用相同的技术,它不起作用。

遇到这种情况我该怎么办?

最佳答案

使用,Series.explodeA 列上,然后使用 Series.str.get_dummies在此分解列上,然后使用 DataFrame.sumlevel=0 上,然后使用 DataFrame.add_prefix将前缀 Column A 添加到每个虚拟列,最后使用 DataFrame.join将原始数据帧与包含虚拟列的数据帧连接起来:

# Use this line IF the values in Column A are type of `string` instead of lists.
df['Column A'] = df['Column A'].str.strip('[]').str.split('\s*,\s*')

df1 = (
df['Column A'].explode()
.str.get_dummies().sum(level=0).add_prefix('Column A_')
)

df1 = df.drop('Column A', 1).join(df1)

结果:

# print(df1)

Column B Column C Column D Column A_Air ... Column A_Groceries Column A_Love Column A_Sand Column A_Water
0 0 True 9 0 ... 1 0 0 1
1 1 False 1 0 ... 0 0 1 1
2 2 NaN 12 0 ... 1 0 0 0
3 3 True 8 1 ... 0 0 0 0
4 4 False 0 0 ... 1 1 0 0

关于python - 数据框:coll 中数组的 get_dummies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62600525/

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