我想添加一列以计算累计正常运行时间。 以下是我的数据框:
我期望的如下:
body_id active_date uptime cumulative_uptime
51C00195 2017/1/26 1.18 1.18
51C00232 2017/1/12 0.83 0.83
51C00232 2017/1/19 6.28 7.11
51C00232 2017/1/20 9.35 16.46
51C00232 2017/1/21 3.88 20.34
以上计算可以简单地在Excel中使用sumif
实现,
但是在pandas
中,我不知道该怎么做。
有人可以帮忙吗?提前谢谢~~
答案 0 :(得分:0)
我认为cumsum可以做到
df['cumulative_uptime'] = df.groupby('body_id')['uptime'].cumsum()
>>> import pandas as pd
>>>
... df = pd.DataFrame({'body_id': ['51C00195','51C00232', '51C00232','51C00232','51C00232'],
... 'active_date': ['2017/1/26','2017/1/12','2017/1/19','2017/1/20','2017/1/21'],
... 'uptime': [1.18,0.83,6.28,9.35,3.88]
... })
>>>
>>> df['cumulative_uptime'] = df.groupby('body_id')['uptime'].cumsum()
>>>
>>> df
active_date body_id uptime cumulative_uptime
0 2017/1/26 51C00195 1.18 1.18
1 2017/1/12 51C00232 0.83 0.83
2 2017/1/19 51C00232 6.28 7.11
3 2017/1/20 51C00232 9.35 16.46
4 2017/1/21 51C00232 3.88 20.34
>>>