首页 > 解决方案 > 按时间间隔分组并获得满足条件的第一行

问题描述

我有一个如下的数据框:

,columnname
2014-01-02 09:30:00-05:00,5
2014-01-02 09:31:00-05:00,6
2014-01-02 09:32:00-05:00,5
2014-01-02 09:33:00-05:00,71
2014-01-02 09:34:00-05:00,98

2014-01-02 09:35:00-05:00,1
2014-01-02 09:36:00-05:00,91
2014-01-02 09:37:00-05:00,9
2014-01-02 09:38:00-05:00,1
2014-01-02 09:39:00-05:00,9

2014-01-02 09:40:00-05:00,1
2014-01-02 09:41:00-05:00,9
2014-01-02 09:42:00-05:00,1
2014-01-02 09:43:00-05:00,84
2014-01-02 09:44:00-05:00,1

2014-01-02 09:45:00-05:00,3
2014-01-02 09:46:00-05:00,1
2014-01-02 09:47:00-05:00,9
2014-01-02 09:48:00-05:00,2
2014-01-02 09:49:00-05:00,5

我需要找到,每 5 分钟间隔,第一行 > 10。所以结果将是:

,columnname
2014-01-02 09:30:00-05:00,71
2014-01-02 09:35:00-05:00,91
2014-01-02 09:40:00-05:00,84
2014-01-02 09:45:00-05:00,NaN

我怎么才能得到它?

标签: pythonpython-3.xpandasdataframe

解决方案


您可以先过滤大于 10 的列,然后使用resampleandfirst

df[df['columnname'].gt(10)].resample('5min').first()

编辑:

df['columnname'].where(df['columnname'].gt(10)).resample('5min').first()

2014-01-02 09:30:00-05:00    71.0
2014-01-02 09:35:00-05:00    91.0
2014-01-02 09:40:00-05:00    84.0
2014-01-02 09:45:00-05:00     NaN
Freq: 5T, Name: columnname, dtype: float64

推荐阅读