gfo*_*e91 5 sql oracle pivot group-by pandas
我有一个数据框 df :
ORDERID PRODUCTTYPE PRODUCTID PRODUCT
123 Fruits 2 Banana
123 Vegetables 3 Tomato
123 Vegetables 3 Onion
321 Fruits 2 Grapes
321 Fruits 2 Avocado
Run Code Online (Sandbox Code Playgroud)
我需要输出为
ORDERID FRUITS VEGETABLES
123 1 2
321 2 0
Run Code Online (Sandbox Code Playgroud)
我需要对 groupby 进行任何修改吗?我正在做
df.groupby('ORDERID'['PRODUCTTYPE'].nunique().reset_index(name="count")
Run Code Online (Sandbox Code Playgroud)
但这只是计算类别的数量
groupby().value_counts()和的组合unstack():
(df.groupby('ORDERID')['PRODUCTTYPE']
.value_counts()
.unstack('PRODUCTTYPE', fill_value=0)
)
Run Code Online (Sandbox Code Playgroud)
或者pivot_table:
df.pivot_table(index='ORDERID',
columns='PRODUCTTYPE',
values='PRODUCTID',
aggfunc='count',
fill_value=0)
Run Code Online (Sandbox Code Playgroud)
输出:
PRODUCTTYPE Fruits Vegetables
ORDERID
123 1 2
321 2 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |