[英]Resampling pandas columns datetime
(我认为)我有一个数据集,其中的列表示datetime
时间间隔
列在日期时间转换为:
for col in df.columns:
df.rename({col: pd.to_datetime(col, infer_datetime_format=True)}, inplace=True)
然后,我需要使用mean
将列(年份和月份'2001-01') resample
为四分之一
我试过了
df = df.resample('1q', how='mean', axis=1)
DataFrame
还有一个多索引集['RegionName', 'County']
但我得到错误:
Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'
问题是在to_datetime
函数中还是在错误的采样中?
(我认为)您重命名每个列头而不是使整个列对象为DatetimeIndex
试试这个:
df.columns = pd.to_datetime(df.columns)
然后运行resample
注意:
转换为DatetimeIndex
后,我会用period
来完成。 这样,您可以在列标题中获得句点,而不是季度的结束日期。
df.groupby(df.columns.to_period('Q'), axis=1).mean()
演示
df = pd.DataFrame(np.arange(12).reshape(2, -1),
columns=['2011-01-31', '2011-02-28', '2011-03-31',
'2011-04-30', '2011-05-31', '2011-06-30'])
df.columns = pd.to_datetime(df.columns)
print(df.groupby(df.columns.to_period('Q'), axis=1).mean())
2011Q1 2011Q2
0 1 4
1 7 10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.