2015-09-16 158 views
1

蟒蛇新手,趕上熊貓(0.16.2)。我有一個df(從Quandl返回),觀察行。我想轉置數據幀,然後設置一個2列的多指數:熊貓添加列轉置periodindex obj?

>df 
Period Value 
2013Q2 10000 
2014Q2 15000 
2015Q2 12500 

>df.T 
Period 2013Q2 2014Q2 2015Q2 
Value  10000 15000 12500 

Desired dataframe after reindex (2-column multi-index): 
Period   2013Q2 2014Q2 2015Q2 
ID Measure 10000 15000 12500 

然而,df.columns是periodindex對象予置後。我不能添加兩個新欄目,我想用它來設置一個多指標:

df['ID'] = 'XYZ' 
df['Measure'] = 'EBIT' 
DateParseError: unknown string format 

這是有道理的,我認爲我不能在非日期列標籤添加到periodindex對象。如果我不是試圖通過位置增加一列,它的工作原理,但後來我失去了我的其他列的日期格式:

>df.insert(loc=5, column='ID', value='XYZ, allow_duplicates=False) 
>df 
Period 173  177  181  ID 
Value  10000 15000 12500 XYZ 

的periodindex是我原來的名單一個巨大的幫助 - 我能集團通過然後過濾出我不想要的地方。我可以把這個發送到一個字典,然後用標籤替換時間戳,但是我還沒有在文檔中找到更好的方法。

有沒有一種方法可以創建兩個新列,將值分配給我現有的觀察值,然後創建多索引而不會丟失列標題?謝謝!

回答

0

你可以只建立了MultiIndex直接,就像這樣:

In [27]: mi = pd.MultiIndex.from_tuples([('XYZ', 'EDBIT')], 
             names=['ID', 'Measure']) 

In [28]: df.index = mi 

In [29]: df 
Out[29]: 
Period  2013Q2 2014Q2 2015Q2 
ID Measure       
XYZ EDBIT  10000 15000 12500 
+0

謝謝!正是我在找什麼... – las