w3resource

Pandas: Get topmost n records within each group of a DataFrame


61. Get Topmost n Records Within Each Group

Write a Pandas program to get topmost n records within each group of a DataFrame.

Sample Solution :

Python Code :

import pandas as pd
d = {'col1': [1, 2, 3, 4, 7, 11], 'col2': [4, 5, 6, 9, 5, 0], 'col3': [7, 5, 8, 12, 1,11]}
df = pd.DataFrame(data=d)
print("Original DataFrame")
print(df)
print("\ntopmost n records within each group of a DataFrame:")
df1 = df.nlargest(3, 'col1')
print(df1)
df2 = df.nlargest(3, 'col2')
print(df2)
df3 = df.nlargest(3, 'col3')
print(df3)

Sample Output:

Original DataFrame
   col1  col2  col3
0     1     4     7
1     2     5     5
2     3     6     8
3     4     9    12
4     7     5     1
5    11     0    11

topmost n records within each group of a DataFrame:
   col1  col2  col3
5    11     0    11
4     7     5     1
3     4     9    12
   col1  col2  col3
3     4     9    12
2     3     6     8
1     2     5     5
4     7     5     1
   col1  col2  col3
3     4     9    12
5    11     0    11
2     3     6     8

For more Practice: Solve these Related Problems:

  • Write a Pandas program to group a DataFrame by a given column and then select the top n rows from each group based on another column.
  • Write a Pandas program to use the groupby() and head() methods to extract the top n records for each group and then merge the results.
  • Write a Pandas program to compute the top n highest values within each group and then output a multi-index DataFrame.
  • Write a Pandas program to group by a categorical column, sort each group by a numeric column, and then select the first n records.

Go to:


Previous: Write a Pandas program to get last n records of a DataFrame.
Next: Write a Pandas program to remove first n rows of a given DataFrame.

Python-Pandas Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.