2017-02-27 55 views
1

我有一個數據幀(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

我可以再次列表轉換以上對期指數然後將其轉換字符串,但沒有一個更簡單的解決方法呢?

回答

1

好的,我在閱讀文檔時找到了答案。功能datetime.strftime()可以用於這樣的:

In[3]: df_qtr.columns.strftime('%YQ%q') 
Out[3]: array(['2008Q4', '2009Q1', '2009Q2'], dtype='<U6') 

原來它可以與日期時間,時間戳和週期索引來使用。要了解更多請閱讀此處:strftime() and strptime() Behavior