基于python中的列中的索引值或值进行查询

时间:2016-07-14 23:25:35

标签: python pandas

我有一个熊猫数据框,我从中计算出学生的平均分数。学生成绩存储在data中,如下所示:

   name score
 0 John   90
 1 Mary   87
 2 John  100
 3 Suzie  90
 4 Mary   88

使用meanscore = data.groupby("name").mean() 我知道了 score name John 95 Mary 87.5 Suzie 90

我想查询,例如meanscore['score'][meanscore['name'] == 'John']此行生成KeyError: 'name'

我知道我这样做的方式并不好,因为我实际上可以通过mean['score'][0]找出John的均值核心。

我的问题是:有没有办法在我的查询中找到每个名称的相应索引值(例如,John为[0],Mary为[1],Suzie为[2])?谢谢!!

2 个答案:

答案 0 :(得分:4)

您可以使用loc

In [11]: meanscore
Out[11]:
       score
name
John    95.0
Mary    87.5
Suzie   90.0

In [12]: meanscore.loc["John", "score"]
Out[12]: 95.0

答案 1 :(得分:3)

你可以这样做:

meanscore['score']['John']

示例:

>>> df
    name  score
0   John     90
1   Mary     87
2   John    100
3  Suzie     90
4   Mary     88

>>> meanscore = df.groupby('name').mean()
>>> meanscore
       score
name
John    95.0
Mary    87.5
Suzie   90.0
>>> meanscore['score']['John']
95.0