python - 按时间间隔分组并获取满足条件的第一行

标签 python python-3.x pandas dataframe

我有一个如下所示的数据框:

,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

我怎样才能得到它?

最佳答案

您可以先过滤大于 10 的列,然后使用 resample第一个

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

关于python - 按时间间隔分组并获取满足条件的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59934431/

相关文章:

即使 "Requirement Already satisfied in Pip"也找不到 Python 模块

Python:将 Base64 编码为 Basic 连接到 API

python - Python 3 中 max([a for a in [1,2]]) 和 max(a for a in [1,2]) 的区别

python - Pandas:用 groupby 中的日期重新索引,根据需要填充/维护值

python - 从 Python 中的字符串中删除辅音

python - Pandas:对 DataFrame 的每一列进行 nansum 系列

pandas - Fisher's Exact in scipy 作为使用 pandas 的新专栏

python - QSqlQuery中isValid()的解释

python - 在 python 中使用 [::-1] 来反转列表 O(1) 空间吗?

python - 如何在给定时间间隙的情况下创建基于时间阈值的列?