Python pandas CustomBusinessDay

时间:2017-12-04 14:54:43

标签: python python-3.x pandas data-science

我试图过滤一些时间序列数据而没有任何运气熊猫..我非常感谢任何有关我做错的提示..首先我试图过滤仅在2013年7月,然后过滤数据再次获取数据集样本的每小时平均值。

最终我想要做的是如上所述过滤数据,以及工作日,或周一,周二,周三等个人工作日使用CustomBusinessDay函数。

我在为CustomBusinessDay

注释掉代码的地方被绊倒了
import pandas as pd
import numpy as np
from pandas.tseries.offsets import CustomBusinessDay


time = pd.date_range('6/28/2013', periods=2000, freq='45min')
data = pd.Series(np.random.randint(100, size=2000), index=time)

print(data)

##weekmask = 'Mon Tue Wed Thu Fri'


df = data.truncate(before='7/1/2013', after='7/31/2013')
df = df.groupby(df.index.hour).mean()
print(df)

##df = CustomBusinessDay(weekmask=weekmask)
##df = pd.bdate_range(start=None, end=None, periods=None, freq='B')
##
##print(df)

1 个答案:

答案 0 :(得分:1)

  

最终我想要做的是按照描述过滤数据   以上是工作日,或周一个人工作日,   周二,周三等,使用CustomBusinessDay函数。

您是否考虑过使用DatetimeIndex.dayofweek

  

星期一= 0,星期日= 6

的星期几
# Exclude Sundays
data.loc[data.index.dayofweek != 6]

# Weekends only
data.loc[data.index.dayofweek.isin([5, 6])]

# Weekdays only
data.loc[~data.index.dayofweek.isin([5, 6])]

另外,我认为df = df.groupby(df.index.hour).mean()的替代方案只是:

df.resample('H').mean()