我的数据帧是这样的,
loc prod period qty
0 Customer10 FG1 2483 200.000000
1 Customer10 FG1 2484 220.000000
2 Customer10 FG1 2485 240.000000
3 Customer10 FG1 2486 260.000000
4 Customer11 FG1 2483 300.000000
5 Customer11 FG1 2484 320.000000
6 Customer11 FG1 2485 340.000000
7 Customer11 FG1 2486 360.000000
8 Customer12 FG1 2483 400.000000
9 Customer12 FG1 2484 420.000000
10 Customer12 FG1 2485 440.000000
11 Customer12 FG1 2486 460.000000
12 Customer13 FG1 2483 500.000000
13 Customer13 FG1 2484 520.000000
14 Customer13 FG1 2485 540.000000
15 Customer13 FG1 2486 560.000000
16 Customer9 FG1 2483 100.000000
17 Customer9 FG1 2484 120.000000
18 Customer9 FG1 2485 140.000000
19 Customer9 FG1 2486 160.000000 我想重塑dataframe (distinct period为列,prod为行)和groupby period,loc预期O/P
2483 2484 2485 2486
FG1 1500 1580 1660 1740发布于 2017-12-25 20:19:11
您可以使用pivot_table
In [37]: df.pivot_table(index='prod', columns='period', values='qty', aggfunc='sum')
Out[37]:
period 2483 2484 2485 2486
prod
FG1 1500.0 1600.0 1700.0 1800.0或
In [39]: df.groupby(['prod','period'])['qty'].sum().unstack()
Out[39]:
period 2483 2484 2485 2486
prod
FG1 1500.0 1600.0 1700.0 1800.0更新:
如何获取最大周期(数量)?
In [69]: pvt = df.pivot_table(index='prod', columns='period', values='qty', aggfunc='sum')
In [70]: pvt
Out[70]:
period 2483 2484 2485 2486
prod
FG1 1500.0 1600.0 1700.0 1800.0
In [71]: pvt.idxmax(axis=1)
Out[71]:
prod
FG1 2486
dtype: int64https://stackoverflow.com/questions/47968524
复制相似问题