如何在熊猫列中创建单词的二进制表示?

问题描述

我有一列包含可变大小的列表。这些列表包含有限数量的短文本值。总共大约 60 个唯一值。

0    ["AC","BB"]
1    ["AD","CB","FF"]
2    ["AA","CC"]
3    ["CA","BB"]
4    ["AA"]

我想在我的数据框中创建这些值列,如果值在这一行中,则该列的值将为 1,否则为 0。

我知道我可以扩展列表,而不是调用 unique 并将它们设置为新列。但之后我不知道该怎么办?

解决方法

这是一种方法:

df = pd.get_dummies(df.explode('val')).sum(level = 0)

注意:这里的 (level=0) 有点像使用索引对内容进行分组的分组操作。所以,我更喜欢在分解数据框后使用它。