Pandas:如何按组获取前 n 行


您可以使用以下基本语法在 pandas DataFrame 中按组获取前 N 行:

 df. groupby (' group_column '). head ( 2 ). reset_index (drop= True )

此特定语法将返回每组的前2行。

只需更改head()函数中的值即可返回不同数量的顶行。

以下示例展示了如何将此语法与以下 pandas DataFrame 结合使用:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'G', 'F', 'F', 'G', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 9, 12, 9, 9, 4, 7, 7]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2 AG 7
3 AF 9
4AF 12
5 BG 9
6 BG 9
7 BF 4
8 BF 7
9 BF 7

示例 1:获取按列分组的前 N 行

以下代码显示如何返回按团队变量分组的前 2 行:

 #get top 2 rows grouped by team
df. groupby (' team '). head ( 2 ). reset_index (drop= True )

        team position points
0 A G 5
1 A G 7
2 B G 9
3 B G 9

输出显示前 2 行,按团队变量分组。

示例 2:获取按多列分组的前 N 行

以下代码显示如何返回按团队位置变量分组的前 2 行:

 #get top 2 rows grouped by team and position
df. groupby ([' team ', ' position ']). head ( 2 ). reset_index (drop= True )

team position points
0 A G 5
1 A G 7
2 A F 9
3 A F 12
4 B G 9
5 B G 9
6 B F 4
7 B F 7

输出显示前 2 行,按团队位置变量分组。

其他资源

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

Pandas:如何查找列中的唯一值
Pandas:如何在多列中查找唯一值
Pandas:如何计算列中特定值的出现次数

添加评论

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