我有以下两个数据帧:
df1
product_ID tags
100 chocolate, sprinkles
101 chocolate, filled
102 glazed
df2
customer product_ID
A 100
A 101
B 101
C 100
C 102
B 101
A 100
C 102
我应该能够像这样创建一个新的数据帧。
| customer | chocolate | sprinkles | filled | glazed |
|----------|-----------|-----------|--------|--------|
| A | ? | ? | ? | ? |
| B | ? | ? | ? | ? |
| C | ? | ? | ? | ? |
其中单元格的内容表示产品属性的出现次数。
我使用了merge
,得到了如下结果
df3 = pd.merge(df2, df1)
df3.drop(['product'], axis = 1)
customer tags
A chocolate, sprinkles
C chocolate, sprinkles
A chocolate, sprinkles
A chocolate, filled
B chocolate, filled
B chocolate, filled
C glazed
C glazed
我们如何从这里得到最终结果?提前感谢!
发布于 2018-06-08 09:02:15
使用get_dummies
df.set_index('customer').tags.str.get_dummies(sep=',').sum(level=0)
Out[593]:
chocolate filled glazed sprinkles
customer
A 3 1 0 2
C 1 0 2 1
B 2 2 0 0
https://stackoverflow.com/questions/50751620
复制相似问题