阅读大熊猫的季度数据

时间:2018-01-29 12:53:51

标签: python pandas python-datetime

我的数据集的季度观察结果显示为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'表示法是不允许的。关于如何优雅地阅读上述季度日期的任何建议?

1 个答案:

答案 0 :(得分: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)