2017-06-14 50 views
0

短的问题:Python的大熊猫:获取指数标签的价值在一个数据帧

我有以下的(样本)数据帧:

DF:

 height weight hair 
joe  5.6  123  brown 
mary  5.2  110  blonde 
pete  6.0  160  red 

如果我知道的价值'hair'是'金发',我如何获得与df.ix ['mary','hair']对应的索引标签(不是整数位置)? (换句话说,我想让'玛丽'知道头发是'金发')。

如果我想要使用get_loc的索引的整数值。但我想要标签。

在此先感谢。

回答

1

如果您想要第一个标签:

df[df['hair'] == 'blonde'].index[0] 

或者,如果你希望所有的值:

labels = df[df['hair'] == 'blonde'].index.values.tolist() 
1

我通常都在使用np.where如下:

import numpy as np 

idx = df.index[np.where(df['hair'] == 'blonde')] 

这给预期的结果:

Index([u'mary'], dtype='object') 

如果你想要的结果列表中,你可以使用的index

.tolist()方法