Pandas:如何找到满足条件的第一行


您可以使用以下语法查找满足特定条件的 pandas DataFrame 的第一行:

 #get first row where value in 'team' column is equal to 'B'
df[df. team == ' B ']. iloc [0]

#get index of first row where value in 'team' column is equal to 'B'
df[df. team == ' B ']. index [0]

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [18, 13, 19, 14, 24, 21, 20, 28],
                   ' assists ': [5, 7, 17, 9, 12, 9, 5, 12]})

#view DataFrame
print (df)

  team points assists
0 to 18 5
1 to 13 7
2 A 19 17
3 B 14 9
4 B 24 12
5 C 21 9
6 C 20 5
7 C 28 12

示例 1:查找满足条件的第一行

我们可以使用以下语法来查找team列中的值等于“B”的第一行:

 #find first row where team is equal to 'B'
df[df. team == ' B ']. iloc [0]

team B
points 14
assists 9
Name: 3, dtype: object

#find index of first row where team is equal to 'B'
df[df. team == ' B ']. index [0]

3

我们可以看到team列中的值等于“B”的第一行位于索引位置 3。

示例 2:查找满足多个条件的第一行

我们可以使用以下语法来查找第一行,其中列中的值大于 15 并且辅助列中的值大于 10:

 #find first row where points > 15 and assists > 10
df[(df. points > 15) & (df. assists > 10)]. iloc [0]

team A
points 19
assists 17
Name: 2, dtype: object

#find index of first row where points > 15 and assists > 10
df[(df. points > 15) & (df. assists > 10)]. index [0]

2

我们可以看到, points列中的值大于 15 并且Assists列中的值大于 10 的第一行位于索引位置 2。

示例 3:查找满足多个条件之一的第一行

我们可以使用以下语法来查找第一行,其中列中的值大于 15 或辅助列中的值大于 10:

 #find first row where points > 15 or assists > 10
df[(df. points > 15) | (df. assists > 10)]. iloc [0]

team A
points 18
assists 5
Name: 0, dtype: object

#find index of first row where points > 15 or assists > 10
df[(df. points > 15) | (df. assists > 10)]. index [0]

0

我们可以看到, points列中的值大于 15 或Assists列中的值大于 10 的第一行位于索引位置 0。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

如何在 Pandas 中选择没有 NaN 值的行
如何在 Pandas 中根据列值选择行
如何在 Pandas 中选择单行

添加评论

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