我有一个数据框,看起来像这样:

User Product
1 a
1 b
2 a
2 c
3 b

我希望每个用户有1行产品作为列,如果用户购买或不购买产品,它会给出1或0,我如何做到这一点?

推荐答案

df.pivot_table(index="User", columns="Product", aggfunc=len).fillna(0)

# Result:

Product    a    b    c
User                  
1        1.0  1.0  0.0
2        1.0  0.0  1.0
3        0.0  1.0  0.0

Python相关问答推荐

Pandas 填充条件是另一列

点到面的Y距离

当使用keras.utils.Image_dataset_from_directory仅加载测试数据集时,结果不同

Python json.转储包含一些UTF-8字符的二元组,要么失败,要么转换它们.我希望编码字符按原样保留

查找两极rame中组之间的所有差异

Excel图表-使用openpyxl更改水平轴与Y轴相交的位置(Python)

在Wayland上使用setCellWidget时,try 编辑QTable Widget中的单元格时,PyQt 6崩溃

使用groupby Pandas的一些操作

无法使用requests或Selenium抓取一个href链接

如何更改分组条形图中条形图的 colored颜色 ?

运输问题分支定界法&

在Django admin中自动完成相关字段筛选

我的字符串搜索算法的平均时间复杂度和最坏时间复杂度是多少?

python sklearn ValueError:使用序列设置数组元素

关于两个表达式的区别

Gekko中基于时间的间隔约束

使用__json__的 pyramid 在客户端返回意外格式

使用polars. pivot()旋转一个框架(类似于R中的pivot_longer)

文本溢出了Kivy的视区

仅取消堆叠最后三列