2017-02-28 116 views
1

是否有一種通過DF ['ColName']獲取pandas列值的一致方法,包括索引列?如果'ColName'是一個索引列,你會得到KeyError。熊貓數據框通用列值

每次您需要確定傳入的列是否爲索引列時,都會以不同的方式處理它,這非常不方便。

謝謝。

+0

你可以舉一個你正在談論的具體例子嗎? – miradulo

回答

2

考慮數據框df

df = pd.DataFrame(
    dict(
     A=[1, 2, 3], 
     B=[4, 5, 6], 
     C=['x', 'y', 'z'], 
    ), 
    pd.MultiIndex.from_tuples(
     [ 
      ('cat', 'red'), 
      ('dog', 'blue'), 
      ('bird', 'yellow') 
     ], 
     names=['species', 'color'] 
    ) 
) 

print(df) 

       A B C 
species color   
cat  red  1 4 x 
dog  blue 2 5 y 
bird yellow 3 6 z 

你總是可以參考指數水平在你參考,如果你reset_index()第一列以同樣的方式。

搶列'A'

df.reset_index()['A'] 

0 1 
1 2 
2 3 
Name: A, dtype: int64 

'color'沒有reset_index()

df['color'] 

> KeyError 

隨着reset_index()

0  red 
1  blue 
2 yellow 
Name: color, dtype: object 

做這沒有它的缺點,它不會來。該指數是潛在有用的具有用於列'A'

df['A'] 

species color 
cat  red  1 
dog  blue  2 
bird  yellow 3 
Name: A, dtype: int64 

自動對準的'index''A'柱的這是它是所述指數的整點的值。