Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按时间间隔分组,得到第一行满足条件_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 按时间间隔分组,得到第一行满足条件

Python 按时间间隔分组,得到第一行满足条件,python,python-3.x,pandas,dataframe,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:0

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

,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的列,然后使用and
首先

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



使用
DataFrame.query
DataFrame.GroupBy
pd.Grouper

df.query('columnname>10').groupby(pd.Grouper(freq='5min')).first()

                           columnname
index                                
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

你的意思是:
df[df['columnname'].gt(10)]。重新采样('5min')。首先()
?这很有效。你应该加上这个作为答案。你的预期输出是错误的,84在小时范围内10@Erfan谢谢我刚刚更正了它实际上最后一行(2014-01-02 09:45:00-05:00,NaN)不是showing@Alfonso_MA检查编辑
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
df.query('columnname>10').groupby(pd.Grouper(freq='5min')).first()

                           columnname
index                                
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