2017-02-28 168 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'柱的这是它是所述指数的整点的值。