[英]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.