如何获取 pandas dataframe 中的行号


通常,您可能希望获取 pandas DataFrame 中包含特定值的行号。

幸运的是,使用.index函数可以轻松做到这一点。

本教程展示了此功能实际使用的几个示例。

示例1:获取某个值对应的行号

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

#view DataFrame 
print (df)

        team assists points
0 25 5 Mavs
1 12 7 Mavs
2 15 7 Spurs
3 14 9 Celtics
4 19 12 Warriors

我们可以使用以下语法来获取“team”等于 Mavs 的行号:

 #get row numbers where 'team' is equal to Mavs
df[df[' team '] == ' Mavs ']. index

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

我们可以看到,在行索引01处,球队名称等于“Mavs”。

我们还可以获取在某个团队名称列表中找到该团队名称的行号:

 #get row numbers where 'team' is equal to Mavs or Spurs
filter_list = [' Mavs ', ' Spurs ']

#return only rows where team is in the list of team names
df[df. team . isin (filter_list)]. index

Int64Index([0, 1, 2], dtype='int64')

我们可以看到行索引012处的球队名称等于“Mavs”或“Spurs”。

示例2:获取唯一的行号

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

如果您知道单个行与某个值匹配,则可以使用以下语法检索该唯一行号:

 #get the row number where team is equal to Celtics
df[df[' team '] == ' Celtics ']. index [ 0 ]

3

我们可以看到该球队等于行索引号3处的“Celtics”。

示例3:获取行号之和

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'team': ['Mavs', 'Mavs', 'Spurs', 'Celtics', 'Warriors']})

如果您想知道某列等于某个值的总行数,可以使用以下语法:

 #find total number of rows where team is equal to Mavs
len (df[df[' team '] == ' Celtics ']. index )

2

我们可以看到,这支球队总共有2 条线等于“小牛”。

其他资源

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

如何在Pandas中查找多列中的唯一值
如何根据多个条件过滤 Pandas DataFrame
如何计算 Pandas DataFrame 中的缺失值

添加评论

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