我对 pandas 功能有疑问pd.groupby()。我有数据框data = [{'Shop': 'Venga', 'Item Name': 'Oranges', 'Measure':'Supply Cost', 'Value': '10'}, {'Shop': 'Venga', 'Item Name': 'Oranges', 'Measure':'Product Cost', 'Value': '20'}, {'Shop': 'Venga', 'Item Name': 'Apples', 'Measure':'Supply Cost', 'Value': '5'}, {'Shop': 'Venga', 'Item Name': 'Apples', 'Measure':'Product Cost', 'Value': '60'}, {'Shop': 'Mesto', 'Item Name': 'Oranges', 'Measure':'Supply Cost', 'Value': '15'}, {'Shop': 'Mesto', 'Item Name': 'Oranges', 'Measure':'Product Cost', 'Value': '10'}, {'Shop': 'Mesto', 'Item Name': 'Apples', 'Measure':'Supply Cost', 'Value': '80'}, {'Shop': 'Mesto', 'Item Name': 'Apples', 'Measure':'Product Cost', 'Value': '5'}, ]我想将我的类别移至Measure列并使其看起来像这样:我尝试过跑步,data.groupby(['Measure'], axis = 1).sum()但对我来说根本不起作用。
1 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
.groupby
然后使用.unstack
正确的级别。在本例中,
level=2
是'Measure'
来自.groupby
对象的列。
.reset_index
删除多级索引。
import pandas as pd
dfg = df.groupby(['Shop', 'Item Name', 'Measure'])['Value'].sum().unstack(level=2).reset_index()
dfg.columns.name = None
# display(dfg)
Shop Item Name Product Cost Supply Cost
0 Mesto Apples 5 80
1 Mesto Oranges 10 15
2 Venga Apples 60 5
3 Venga Oranges 20 10
添加回答
举报
0/150
提交
取消