猿问

Series中的布尔值DataFrame及其自身在Pandas中

我有一个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         |

在熊猫中,最有效的方法是什么?我不知道是否有一个快速的解决方法,因为在我能找到的所有文档示例中,布尔型掩码都使用类别名称作为列标题(而不是将项目本身既作为列又作为行)。


倚天杖
浏览 260回答 1
1回答

守候你守候我

我的评论不正确,这需要进行一些预处理首先,merge关于类别:df1 = df.merge(df, on='category')pd.crosstabpd.crosstab(df1.item_x, df1.item_y)item_y     burger  chocolate  pasta  pepsi  wateritem_xburger          1          1      1      0      0chocolate       1          1      1      0      0pasta           1          1      1      0      0pepsi           0          0      0      1      1water           0          0      0      1      1
随时随地看视频慕课网APP

相关分类

Python
我要回答