gpt4 book ai didi

python - Pandas 中系列的 bool 数据帧及其自身

转载 作者:行者123 更新时间:2023-12-01 09:19:05 25 4
gpt4 key购买 nike

我有一个 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 中执行此操作最有效的方法是什么?我不知道是否有一种快速的方法来解决这个问题,因为在我能找到的所有文档示例中, bool 掩码使用类别名称作为列标题(而不是将项目本身作为列和行)。

最佳答案

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

首先,合并类别:

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

关于python - Pandas 中系列的 bool 数据帧及其自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50955716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com