微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-重采样熊猫列日期时间

(我认为)我有一个数据集,其中的列代表日期时间间隔

列在日期时间使用以下方式进行了转换:

    for col in df.columns:
        df.rename({col: pd.to_datetime(col, infer_datetime_format=True)}, inplace=True)

然后,我需要使用均值将列(年份和月份“ 2001-01”)重新采样为季度

我试过了

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)

然后进行重新采样

注意:
我会在转换为DatetimeIndex之后用句点来做.这样,您可以在列标题中获得期间,而不是季度的结束日期.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐