gpt4 book ai didi

python - 基于时间段的一列平均值+另一列的条件

转载 作者:行者123 更新时间:2023-12-01 07:18:38 25 4
gpt4 key购买 nike

我相信我的问题非常简单,并且一定有一个非常简单的方法来解决这个问题,但是由于我对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

希望我能够做到简洁而准确。我非常感谢您在这方面的帮助!

最佳答案

我相信您需要首先按 DataFrame.query 进行过滤或boolean indexing然后按 DataFrame.resample 重新采样与意思:

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()

关于python - 基于时间段的一列平均值+另一列的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57822342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com