📜  获取 Pandas DataFrame 的每组中最前面的 N 条记录

📅  最后修改于: 2022-05-13 01:55:24.837000             🧑  作者: Mango

获取 Pandas DataFrame 的每组中最前面的 N 条记录

首先,pandas 数据框以表格的形式存储数据。在某些情况下,我们需要根据某些条件从数据框中检索数据。比如我们想获取每组数据帧的前 N 条记录。在这里,我们将使用 Pandas 的Groupby()函数对列进行分组。所以我们可以这样做:

首先,我们创建了一个 pandas 数据框:

Python3
#importing pandas as pd
import pandas as pd
  
#creating dataframe
df=pd.DataFrame({ 'Variables': ['A','A','A','A','B','B',
                                'B','C','C','C','C'],
                 'Value': [2,5,0,3,1,0,9,0,7,5,4]})
df


Python3
# setting value of N as 2
N = 2
  
# using groupby to group acc. to
# column 'Variable'
df.groupby('Variables').head(N).reset_index(drop=True)


Python3
# setting value of N as 2
N = 4
  
# using groupby to group acc. 
# to column 'Variable'
df.groupby('Variables').head(N).reset_index(drop=True)


输出:

现在,我们将获得“变量”列的每组的最高 N 个值。这里reset_index()用于根据数据的分组提供一个新的索引。和头() 用于从顶部获取最顶部的 N 个值。

示例 1:假设 N=2

Python3

# setting value of N as 2
N = 2
  
# using groupby to group acc. to
# column 'Variable'
df.groupby('Variables').head(N).reset_index(drop=True)

输出:

示例 2:现在,假设N=4

Python3

# setting value of N as 2
N = 4
  
# using groupby to group acc. 
# to column 'Variable'
df.groupby('Variables').head(N).reset_index(drop=True)

输出: