簡體   English   中英

如何在 pandas dataframe 中重新采樣並忽略周末

[英]How to resample in pandas dataframe and ignore weekends

我有一個 dataframe ,我在“yVAH”列中讀出前一天的最后一個值,並使用以下代碼將其連接到“yVAHnew”中的第二天:

df = df.join(df.resample('B', on='Date')['yVAH'].last().rename('yVAHnew'), on=pd.to_datetime((df['Date'] - pd.Timedelta('1d')).dt.date))

它基本上可以工作,但問題是我在周末后得到一個 NaN,盡管我在重新采樣中聲明了“B”:

    Date                Time    yVAH    yVAHnew
360 2019-06-21 21:45:00 214500  2942.75 2943.5
361 2019-06-21 21:50:00 215000  2942.75 2943.5
362 2019-06-21 21:55:00 215500  2942.75 2943.5
363 2019-06-21 22:00:00 220000  2942.75 2943.5
364 2019-06-21 22:05:00 220500  2942.75 2943.5
365 2019-06-21 22:10:00 221000  2942.75 2943.5
366 2019-06-24 07:00:00 70000   2941.00 NaN
367 2019-06-24 07:05:00 70500   2941.00 NaN
368 2019-06-24 07:10:00 71000   2941.00 NaN
369 2019-06-24 07:15:00 71500   2941.00 NaN
370 2019-06-24 07:20:00 72000   2941.00 NaN
371 2019-06-24 07:25:00 72500   2941.00 NaN   

我認為 timedelta 是問題所在? 周末后我能做些什么來擺脫 NaN?

我自己找到了解決方案。

改變:

pd.Timedelta('1d')).dt.date))

至:

pd.tseries.offsets.BusinessDay()).dt.date))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM