在 Pandas 中如何获取列与特定值匹配的行的索引?

关注者
4
被浏览
24,331

3 个回答

其实很简单,重点在于需要知道 pandas 里怎么做过滤。

举个例子,下面是一组人的年龄信息

df = pd.DataFrame({
    "name":["john", "jack", "peter", "henry"], 
    "age": [25, 23, 22, 23]})

这个 df 打印出来是长这样的

    name  age
0   john   25
1   jack   23
2  peter   22
3  henry   23

现在我们要获取所有年龄23岁的人的行索引,应该怎么做呢?

首先过滤数据

df[df["age"]==23]

这行代码的作用是获取所有年龄是23的行,它的输出是这样的

    name  age
1   jack   23
3  henry   23

然后我们需要的是索引,获取索引可以访问 df 的 index 属性,如下

df[df["age"]==23].index

上面的代码输出

Int64Index([1, 3], dtype='int64')

可以看到,1和3正是所有年龄是23的人的行索引。

如果希望结果是一个列表,可以再调用一下 to_list() 函数

df[df["age"]==23].index.to_list()

输出

[1, 3]