我有这个样品表:
ID Date Days Volume/Day
0 111 2016-01-01 20 50
1 111 2016-02-01 25 40
2 111 2016-03-01 31 35
3 111 2016-04-01 30 30
4 111 2016-05-01 31 25
5 111 2016-06-01 30 20
6 111 2016-07-01 31 20
7 111 2016-08-01 31 15
8 111 2016-09-01 29 15
9 111 2016-10-01 31 10
10 111 2016-11-01 29 5
11 111 2016-12-01 27 0
0 112 2016-01-01 31 55
1 112 2016-02-01 26 45
2 112 2016-03-01 31 40
3 112 2016-04-01 30 35
4 112 2016-04-01 31 30
5 112 2016-05-01 30 25
6 112 2016-06-01 31 25
7 112 2016-07-01 31 20
8 112 2016-08-01 30 20
9 112 2016-09-01 31 15
10 112 2016-11-01 29 10
11 112 2016-12-01 31 0
在按ID和Date分组之后,我试图使我的表final表如下所示。在
^{pr2}$接下来,我希望能够提取每个ID的第一个Volume/Day值、所有CumDays值以及每个ID和Date的Volume/Day值。所以我可以用它们来进一步计算和绘制体积/天与立方日的关系。例如,ID:111,Volume/Day的第一个值将只有50,ID:112将只有55。ID:111的所有CumDays值将为20,45。。。身份证号码:112,号码是31,57……所有号码/天——身份证号码111,号码是50,40。。。身份证号码:112等于55,45。。。在
我的解决方案:
def get_time_rate(grp_df):
t = grp_df['Days'].cumsum()
r = grp_df['Volume/Day']
return t,r
vals = df.groupby(['ID','Date']).apply(get_time_rate)
vals
这样做,累积计算根本不起作用。它返回原始的Days值。这不允许我进一步提取Volume/Day的第一个值、所有CumDays值和我需要的所有Volume/Day值。如有任何建议或帮助,我们将不胜感激。谢谢
获取一个
groupby
对象。在使用
^{pr2}$transform
计算列:如果要分组绘图,可以在按
ID
分组后迭代每个组。要绘制,首先设置索引并调用plot
。在相关问题 更多 >
编程相关推荐