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

时间:2018-06-20 19:29:39

标签: python pandas dataframe

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

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

1 个答案:

答案 0 :(得分:1)

我的评论不正确,这需要进行一些预处理

首先,在类别上为 Route 2

Route 2

merge

df1 = df.merge(df, on='category')