[英]Panda's resampling - Get Mean for a freq. Period of TIME
我有一個這樣的df
其中Timestamp為INDEX( dtype='datetime64[ns]
)和1Y
關聯值:
values
Timestamp
2014-01-01 00:00:00 20.155100
2014-01-01 00:15:00 7.586481
2014-01-01 00:30:00 73.115602
2014-01-01 00:45:00 5.936765
2014-01-01 01:00:00 82.130244
...
現在我想確定每天,每周,每月和每季度的08:00:00和20:00:00之間的所有值的平均值?
der是否是正確的pd.resample
選項? 如果沒有,有什么建議嗎?
有一些解決方案:
首先導入df
,如下所示:
timestamp values
0 2014-01-01 00:00:00 20.155100
1 2014-01-01 00:15:00 7.586481
2 2014-01-01 00:30:00 73.115602
3 2014-01-01 00:45:00 5.936765
4 2014-01-01 01:00:00 82.130244
然后將time.hour
列應用於df
並應用條件邏輯:
df["hour"] = df["timestamp"].apply(lambda time: time.hour)
Output:
timestamp values hour
0 2014-01-01 00:00:00 20.155100 0
1 2014-01-01 00:15:00 7.586481 0
2 2014-01-01 00:30:00 73.115602 0
3 2014-01-01 00:45:00 5.936765 0
4 2014-01-01 01:00:00 82.130244 1
df_new = df[(df["hour"]>=8) & (df["hour"] < 20)].drop("hour", axis=1) #apply conditional logic to a Pandas DataFrame
df_new.set_index("timestamp").resample("1D").mean().head() #resample
Output:
value
timestamp
2014-01-01 46.139711
2014-01-02 48.794015
2014-01-03 48.818879
2014-01-04 50.030388
2014-01-05 55.124282
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.