获取 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)
输出: