Pandas:获取列与值匹配的行的索引


您可以使用以下语法来获取 pandas DataFrame 中列与特定值匹配的行的索引:

 df. index [df[' column_name ']== value ]. tolist ()

以下示例展示了如何在实践中通过以下 pandas DataFrame 使用此语法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'],
                   ' points ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

team points rebounds
0 to 5 11
1 to 7 8
2 to 7 10
3 B 9 6
4 B 12 6
5 C 9 5
6 C 9 9
7 D 4 12

示例1:获取列与值匹配的行的索引

下面的代码展示了如何获取列等于某个值的行的索引:

 #get index of rows where 'points' column is equal to 7
df. index [df[' points ']== 7 ]. tolist ()

[1, 2]

这告诉我们索引值为12的行在点列中具有值“7”。

请注意,我们还可以使用小于和大于运算符来查找列小于或大于某个值的行的索引:

 #get index of rows where 'points' column is greater than 7
df. index [df[' points '] > 7 ]. tolist ()

[3, 4, 5, 6]

这告诉我们索引值为3456的行在点列中的值大于“7”。

示例2:获取列与字符串匹配的行的索引

以下代码显示如何获取列等于某个字符串的行的索引:

 #get index of rows where 'team' column is equal to 'B'
df. index [df[' team ']==' B ']. tolist ()

[3, 4]

这告诉我们索引值为34的行在 team 列中具有值“B”。

示例3:获取多个条件的行索引

下面的代码展示了如何获取多列的值符合一定条件的行的索引:

 #get index of rows where 'points' is equal to 7 or 12
df. index [(df[' points ']== 7 ) | (df[' points ']== 12 )]. tolist ()

[1, 2, 4]

#get index of rows where 'points' is equal to 9 and 'team' is equal to 'B'
df. index [(df[' points ']== 9 ) & (df[' team ']==' B ')]. tolist ()

[3]

其他资源

如何从 Pandas DataFrame 获取单元格值
如何重命名 Pandas DataFrame 中的索引
如何在 Pandas 中按名称对列进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注