【问题标题】:reading quarterly data in pandas在 pandas 中读取季度数据
【发布时间】:2018-07-08 04:17:05
【问题描述】:

我有一个季度观察数据集,表示为 200101(2001 年第 1 季度)到 201504(2015 年第 4 季度)。我想将这些转换为适当的熊猫日期索引。

200101  ->  2001-03-31
       ...
201504  ->  2015-12-31

我经常使用的年/月

import datetime as dt
dates = [dt.datetime.strptime(str(d), '%Y%m') for d in series['date']]
series['date'] = pd.date_range(dates[0], dates[-1], freq='M')

很遗憾,'%Y%q' 表示法是不允许的。有关如何优雅地阅读上述季度日期的任何建议?

【问题讨论】:

    标签: python pandas python-datetime


    【解决方案1】:

    您可以将这些字符串转换为PeriodIndex(freq='Q'),然后(如果需要)转换为timestamp(freq='M')

    演示:

    In [272]: df
    Out[272]:
           qt
    0  200101
    1  201504
    
    In [273]: pd.PeriodIndex(df.qt.astype(str).str.replace(r'(\d{4})[0]?(\d{1})', r'\1q\2'),
                             freq='Q') \
                .to_timestamp(freq='M')
    Out[273]: DatetimeIndex(['2001-01-31', '2015-10-31'], dtype='datetime64[ns]', name='qt', freq=None)
    

    【讨论】:

      猜你喜欢
      • 2021-06-12
      • 2020-08-28
      • 2013-08-01
      • 1970-01-01
      • 2021-01-07
      • 2020-06-18
      • 2020-11-16
      • 2022-01-07
      • 2021-07-07
      相关资源
      最近更新 更多