![](/img/trans.png)
[英]How to calculate slope of Pandas dataframe column based on previous N rows
[英]How to find mean of n previous rows in a column in pandas based on date criteria?
我有一个看起来像这样的数据集:
value1 value2 value3 date
17 21 22 2005-04-01 12:05:00
19 20 24 2005-04-01 12:06:00
16 26 23 2005-04-01 12:07:00
我需要对其进行某种形式的转换,因此日期以.05:00结尾的每一行的值(每小时5分钟)将等于前60行的平均值。
我尝试根据日期时间使用groupby,它确实提供了每小时(00-59)的平均值,但是我需要针对我的情况进行调整。
最后,我想拥有这样的东西:
value1 value2 value3 date
17 21 22 2005-04-01 12:05:00
19 20 24 2005-04-01 13:05:00
16 26 23 2005-04-01 14:05:00
例如,其中17是value1列中60个先前值的平均值。
这将在60分钟的窗口上产生滚动平均值(请确保该date
列为datetime64[ns]
dtype,如果不是,请事先进行转换),然后可以使用.loc[]
选择必要的行:
df.rolling('H', on='date').mean().loc[lambda x: x['date'].dt.minute == 5]
有关.rolling()
和.loc[]
更多详细信息,请参阅文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.