Pandas 日期功能:将期间索引信息提取为字符串
Pandas Date Functionality: Extracting Period Index information as String
我有一个数据框(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
列 headers 是 期间索引 通过使用以下代码合并每月数据(日期是列 headers)创建的:
In[1]: df_qtr = df.groupby(pd.PeriodIndex(df.columns, freq='q'), axis=1).mean()
我想将 列 headers 提取为字符串 为:
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
我可以再次将上面的列表转换为 Period Index,然后将其转换为字符串,但是没有更简单的解决方法吗?
好的,我在浏览文档时找到了答案。函数 datetime.strftime() 可用于此:
In[3]: df_qtr.columns.strftime('%YQ%q')
Out[3]: array(['2008Q4', '2009Q1', '2009Q2'], dtype='<U6')
原来它可以与日期时间、时间戳和周期索引一起使用。要了解更多信息,请阅读此处:strftime() and strptime() Behavior
我有一个数据框(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
列 headers 是 期间索引 通过使用以下代码合并每月数据(日期是列 headers)创建的:
In[1]: df_qtr = df.groupby(pd.PeriodIndex(df.columns, freq='q'), axis=1).mean()
我想将 列 headers 提取为字符串 为:
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
我可以再次将上面的列表转换为 Period Index,然后将其转换为字符串,但是没有更简单的解决方法吗?
好的,我在浏览文档时找到了答案。函数 datetime.strftime() 可用于此:
In[3]: df_qtr.columns.strftime('%YQ%q')
Out[3]: array(['2008Q4', '2009Q1', '2009Q2'], dtype='<U6')
原来它可以与日期时间、时间戳和周期索引一起使用。要了解更多信息,请阅读此处:strftime() and strptime() Behavior