我正在使用python 3和pandas。
我有一个数据框;
tpfs.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 2121 entries, 2019-05-15 00:10:00 to 2019-05-31 23:52:00
Data columns (total 4 columns):
bg 2121 non-null int64
carbs 2121 non-null float64
humalog 2121 non-null float64
lantus 2121 non-null float64
dtypes: float64(3), int64(1)
memory usage: 162.9 KB
数据如下:
bg carbs humalog lantus
time
2019-05-30 08:36:00 150 0.0 0.0 0.0
2019-05-30 08:52:00 154 0.0 0.0 0.0
2019-05-30 09:00:00 158 0.0 0.0 0.0
2019-05-30 09:00:00 0 39.0 0.0 0.0
2019-05-30 09:00:00 0 0.0 2.5 0.0
2019-05-30 09:00:00 0 0.0 0.0 13.0
2019-05-30 09:07:00 161 0.0 0.0 0.0
2019-05-30 09:23:00 163 0.0 0.0 0.0
2019-05-30 09:36:00 160 0.0 0.0 0.0
2019-05-30 09:38:00 156 0.0 0.0 0.0
我想汇总数据,这样我每24小时都有行,这些行显示bg的平均值以及carb,humalog和lantus的总和。
我尝试了groupby和agg的各种组合,并获得了各种错误消息。最重要的是,我只是从各种来源剪切粘贴代码,并试图在不完全了解它们如何工作的情况下,对其进行调整以适合我的用例。
尽管有很多常见问题解答示例,文档和“如何做”,但似乎找不到一个与我要尝试应用的示例足够接近的示例。也许提取两个新的数据帧(一个用于bg平均值,一个用于求和,然后将它们组合。
有什么想法吗?
答案 0 :(得分:1)
您希望将.resample()
与.agg()
结合使用:
tpfs.resample('24h').agg({
'bg':'mean',
'carbs':'sum',
'humalog':'sum',
'lantus':'sum'
})