2014-02-28 18 views
1

嘗試重新命名彙總平均值的索引以更好地呈現。彙總數據幀的重命名索引

mapping={ 
    'bbom':'BB Crossover and stay over midline', 
    'bbos':'BB Crossover and MACD over signal line', 
    'cao3':'Bulk trade over 3% cap', 
    'maos':'Positive MACD over signal line', 
    'rscp':'Oversold cheap big chips'} 

an=an.reindex(columns=['date','type','stocknum','price','pe','d1','d2','d5','d10','d20']) 

an_typed=an.groupby('type') 
mean_overall=an_typed.mean() 
print(mean_overall.index) 
mean_overall.rename(index=mapping) 

out: 

Index(['bbom', 'bbos', 'cao3', 'maos', 'rscp'], dtype='object') 
#################################################### 
OVERALL: 

mean 
      price   pe   d1   d2   d5   d10 \ 
type                   
bbom 4.247788 25.697788 100.815980 100.350360 100.426334 100.898103 
bbos 4.760615 14.078462 99.759520 99.581404 99.821370 98.940811 
cao3 1.825135 55.514054 101.634849 100.358120 99.743545 105.610347 
maos 6.600822 17.105342 100.288234 100.578242 99.712953 100.561209 
rscp 14.990484 5.622903 99.954267 99.884227 97.935620   NaN 

     d20 
type  
bbom NaN 
bbos NaN 
cao3 NaN 
maos NaN 
rscp NaN 

[5 rows x 7 columns] 

映射不起作用,但從打印出來的聚合均值來看,索引已經基於groupby key。

+0

你試過'mean_overall.rename(指數=映射,就地= TRUE)'?請參閱http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rename.html – EdChum

回答

0

rename返回一個新的數據框,所以如果你沒有把它分配給自己,那麼它將不起作用。所以你需要設置inplace=True以便它修改數據幀。

mean_overall.rename(index=mapping, inplace=True)

online docs

+0

tks爲您的答案...你也可以照亮我的一些光http://stackoverflow.com/questions/22087411/dataframe-select-by-datetimeitem?noredirect = 1#comment33500463_22087411,爲什麼有些datetimeindex在datetimeindex選擇後變成長整數? – timeislove

+0

@timeislove對不起,我不知道任何其他問題,聽起來像是一個錯誤,如果上述答案有幫助,那麼你應該接受它。 – EdChum