让我们留下来我有一份杂货清单,其中一列标题为";Groceries";。例如,在每一行中都有一个字符串列表。
杂货 |
---|
苹果、香蕉、橙子 |
苹果、香蕉、香蕉、梨 |
橙子、梨、香蕉 |
您可以split
逗号上的字符串,explode
多行,get_dummies
转换为0/1,groupby.sum
聚合:
out = (pd
.get_dummies(df['Groceries'].str.split(',s*').explode())
.groupby(level=0).sum()
)
或与crosstab
:类似
s = df['Groceries'].str.split(',s*').explode()
out = pd.crosstab(s.index, s)
输出:
apples bananas oranges pears
0 1 1 1 0
1 1 2 0 1
2 0 1 1 1