按时间分组以及熊猫中的其他列

vol*_*ile 1 pandas

我有一个大熊猫数据框,其中包含列时间戳,名称和值

index    timestamp                     name   value
0        1999-12-31 23:59:59.000107    A      16
1        1999-12-31 23:59:59.000385    B      12
2        1999-12-31 23:59:59.000404    C      25 
3        1999-12-31 23:59:59.000704    B      15
4        1999-12-31 23:59:59.001281    A      300
5        1999-12-31 23:59:59.002211    C      20
6        1999-12-31 23:59:59.002367    C      3
Run Code Online (Sandbox Code Playgroud)

我想按时间段(例如20ms或20分钟)和名称进行分组,然后计算每组的平均值。

最有效的方法是什么?

Gus*_*rra 5

您可以使用pd.Grouper,但是它要求您在索引上具有时间戳记。因此,您可以尝试以下操作:

df.set_index('timestamp').groupby([pd.Grouper(freq='20Min'), 'name']).mean()
Run Code Online (Sandbox Code Playgroud)

  • `pd.TimeGrouper` 现在已弃用,正确的方法是改用 `pd.Grouper`。 (2认同)
  • 要查看“freq”的规范,请查看此处:https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases (2认同)