我有一个Pandas DataFrame,其中的类别信息存储在一列中,像这样(只有2个类别,但有很多项):| index | item | category ||-------|-----------|----------|| 0 | water | drink || 1 | pasta | food || 2 | burger | food || 3 | pepsi | drink || 4 | chocolate | food |我想创建一个掩码DataFrame,但我不想使用类别名称,而是希望将每个项目既作为行又作为列。相同类别的项目的条目数为1,否则为0:| item | water | pasta | burger | pepsi | chocolate ||-----------|-------|-------|--------|-------|-----------|| water | 1 | 0 | 0 | 1 | 0 || pasta | 0 | 1 | 1 | 0 | 1 || burger | 0 | 1 | 1 | 0 | 1 || pepsi | 1 | 0 | 0 | 1 | 0 || chocolate | 0 | 1 | 1 | 0 | 1 |在熊猫中,最有效的方法是什么?我不知道是否有一个快速的解决方法,因为在我能找到的所有文档示例中,布尔型掩码都使用类别名称作为列标题(而不是将项目本身既作为列又作为行)。
1 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
我的评论不正确,这需要进行一些预处理
首先,merge关于类别:
df1 = df.merge(df, on='category')
pd.crosstab
pd.crosstab(df1.item_x, df1.item_y)
item_y burger chocolate pasta pepsi water
item_x
burger 1 1 1 0 0
chocolate 1 1 1 0 0
pasta 1 1 1 0 0
pepsi 0 0 0 1 1
water 0 0 0 1 1
添加回答
举报
0/150
提交
取消