我试图过滤一些时间序列数据而没有任何运气熊猫..我非常感谢任何有关我做错的提示..首先我试图过滤仅在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)
答案 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()