从熊猫数据框中删除非工作日行

新手上路,请多包涵

我有一个包含小麦时间序列数据的数据 df

 df = wt["WHEAT_USD"]

2016-05-02 02:00:00+02:00    4.780
2016-05-02 02:01:00+02:00    4.777
2016-05-02 02:02:00+02:00    4.780
2016-05-02 02:03:00+02:00    4.780
2016-05-02 02:04:00+02:00    4.780
Name: closeAsk, dtype: float64

当我绘制数据时,由于周末,它有这些烦人的水平线。有没有一种简单的方法可以从数据框本身中删除非工作日?

就像是

df = df.BDays()

原文由 vandelay 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 462
2 个回答

一个简单的解决方案是将不在周一至周五的日子切掉:

 In [11]: s[s.index.dayofweek < 5]
Out[11]:
2016-05-02 00:00:00    4.780
2016-05-02 00:01:00    4.777
2016-05-02 00:02:00    4.780
2016-05-02 00:03:00    4.780
2016-05-02 00:04:00    4.780
Name: closeAsk, dtype: float64

注意:这没有考虑银行假期等。

原文由 Andy Hayden 发布,翻译遵循 CC BY-SA 3.0 许可协议

熊猫 BDay 最终使用 .dayofweek<5 喜欢选择的答案,但可以扩展到考虑银行假期等。

 import pandas as pd
from pandas.tseries.offsets import BDay

isBusinessDay = BDay().onOffset
csv_path = 'C:\\Python27\\Lib\\site-packages\\bokeh\\sampledata\\daylight_warsaw_2013.csv'
dates_df = pd.read_csv(csv_path)
match_series = pd.to_datetime(dates_df['Date']).map(isBusinessDay)
dates_df[match_series]

原文由 Dave Babbitt 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题