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