Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.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_Pandas_Dataframe_Timestamp - Fatal编程技术网

Python 基于时间段的一列平均值+;另一列的条件

Python 基于时间段的一列平均值+;另一列的条件,python,pandas,dataframe,timestamp,Python,Pandas,Dataframe,Timestamp,我相信我的问题非常简单,必须有一个非常简单的方法来解决这个问题,但是由于我对Python非常陌生,我无法自己解决它 我制作了这个数据框架,作为我所面临问题的一个简单示例。我需要的是,每10分钟计算所考虑点的平均速度,这些点由列“状态”表示,1被考虑,0不被考虑。因此,我希望创建一个数据框,其中每10分钟包含6个平均值,然而,平均值仅与所考虑的点相关 Timestamp Category ... Status Quantity 0

我相信我的问题非常简单,必须有一个非常简单的方法来解决这个问题,但是由于我对Python非常陌生,我无法自己解决它

我制作了这个数据框架,作为我所面临问题的一个简单示例。我需要的是,每10分钟计算所考虑点的平均速度,这些点由列“状态”表示,1被考虑,0不被考虑。因此,我希望创建一个数据框,其中每10分钟包含6个平均值,然而,平均值仅与所考虑的点相关

            Timestamp      Category  ...      Status           Quantity
0     2013-08-14 22:00:00         1  ...          1               1
1     2013-08-14 22:00:01         1  ...          1               1
2     2013-08-14 22:00:02         1  ...          0               1.1
3     2013-08-14 22:00:03         1  ...          1               1.2
4     2013-08-14 22:00:04         1  ...          1               1.2
5     2013-08-14 22:00:05         1  ...          0               1.2
6     2013-08-14 22:00:06         1  ...          1               1.2
7     2013-08-14 22:00:07         1  ...          0               1.2
8     2013-08-14 22:00:08         1  ...          1               1.2

35999 2013-08-23 22:59:59         0  ...          1               2.3

希望我能做到简明扼要。我非常感谢你在这件事上的帮助

我认为您首先需要使用或进行过滤,然后使用
平均值重新采样:

df['Timestamp'] = pd.to_datetime(df['Timestamp'])

df1=df.query("Status==1").resample('10Min',on='Timestamp')['Quantity'].mean().reset_index()
print (df1)
               Timestamp  Quantity
0    2013-08-14 22:00:00  1.133333
1    2013-08-14 22:10:00       NaN
2    2013-08-14 22:20:00       NaN
3    2013-08-14 22:30:00       NaN
4    2013-08-14 22:40:00       NaN
                 ...       ...
1297 2013-08-23 22:10:00       NaN
1298 2013-08-23 22:20:00       NaN
1299 2013-08-23 22:30:00       NaN
1300 2013-08-23 22:40:00       NaN
1301 2013-08-23 22:50:00  2.300000

[1302 rows x 2 columns]
类似的:

df1 = df[df["Status"] == 1].resample('10Min', on='Timestamp')['Quantity'].mean()

但在我的例子中,我想要的是计算“数量”列的平均值