Python 重新采样日期时间

Python 重新采样日期时间,python,datetime,pandas,Python,Datetime,Pandas,(我想)我有一个数据集,其中的列表示datetime间隔 列在datetime中转换为: for col in df.columns: df.rename({col: pd.to_datetime(col, infer_datetime_format=True)}, inplace=True) 然后,我需要使用mean 我试过了 df = df.resample('1q', how='mean', axis=1) DataFrame还有一个多索引集['RegionNa

(我想)我有一个数据集,其中的列表示
datetime
间隔

列在datetime中转换为:

    for col in df.columns:
        df.rename({col: pd.to_datetime(col, infer_datetime_format=True)}, inplace=True)
然后,我需要使用
mean

我试过了

df = df.resample('1q', how='mean', axis=1)
DataFrame
还有一个多索引集
['RegionName','country']

但我得到了一个错误:

Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Index'
to_datetime
函数出现问题还是采样错误?

(我认为)您正在重命名每个列标题,而不是将整个列对象设置为
日期时间索引

请尝试以下方法:

df.columns = pd.to_datetime(df.columns)
然后运行您的
重新采样


注意:
在转换为
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

但是列的值是另一个信息(price-我想要三个月(三列)的平均值)。我实际上想要头作为DateTime,这样我就可以将月份聚合成季度。你能发布数据帧的前几行吗?基于你给出的信息,
df.rename
语句应该失败。