【发布时间】:2017-02-28 04:29:42
【问题描述】:
我有一个格式如下的数据框(df_qtr):
Index 2008Q4 2009Q1 2009Q2
Ex 85833.33 85433.33 85766.66
Kc 153200.00 150533.33 149666.66
Al 83766.66 84200.00 84333.33
Jk 107933.33 113600.00 115366.66
Ar 151200.00 147133.33 143900.00
Ax 139300.00 137333.33 132700.00
列标题是期间索引,通过使用以下代码合并每月数据(日期为列标题)创建:
In[1]: df_qtr = df.groupby(pd.PeriodIndex(df.columns, freq='q'), axis=1).mean()
我想将列标题作为字符串提取为:
Out[1]: ['2008Q4', '2009Q1', '2009Q2']
我最接近的是将它转换回时间戳,然后是字符串:
In[2]: list(df_qtr.columns.to_datetime().astype(str))
Out[2]: Index(['2008-10-01', '2009-01-01', '2009-04-01']
但同样不适用于期间索引,我收到以下错误:
ValueError: Cannot cast PeriodIndex to dtype <U0
我可以再次将上面的列表转换为期间索引,然后将其转换为字符串,但没有更简单的解决方法吗?
【问题讨论】:
标签: python pandas python-datetime