在Pandas DataFrame的每组中获取最上面的N条记录
首先,pandas DataFrame以表的形式存储数据。在某些情况下,我们需要根据一些条件从DataFrame中检索数据。例如,如果我们想获得DataFrame中每组的前N条记录。我们创建DataFrame并使用下面提到的方法。
获取每组中最重要的N条记录
首先,我们在Python中创建了一个pandasDataFrame。
#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
输出:
Variables Value
0 A 2
1 A 5
2 A 0
3 A 3
4 B 1
5 B 0
6 B 9
7 C 0
8 C 7
9 C 5
10 C 4
使用pandas的Groupby()函数对列进行分组
现在,我们将得到 “变量 “列中每一组的最上面的N个值。这里reset_index()被用来根据数据的分组提供一个新的索引。head()用于从顶部获得最重要的N个值。
例子1:假设N=2的值
# setting value of N as 2
N = 2
# using groupby to group acc. to
# column 'Variable'
print(df.groupby('Variables').head(N).reset_index(drop=True))
输出:
Variables Value
0 A 2
1 A 5
2 B 1
3 B 0
4 C 0
5 C 7
例子2:现在,假设N=4的值
# setting value of N as 2
N = 4
# using groupby to group acc.
# to column 'Variable'
print(df.groupby('Variables').head(N).reset_index(drop=True))
输出:
Variables Value
0 A 2
1 A 5
2 A 0
3 A 3
4 B 1
5 B 0
6 B 9
7 C 0
8 C 7
9 C 5
10 C 4
使用pandas的nlargest()函数对列进行分组
现在,我们将得到 “变量 “列中每组的最上面的N个值。这里nlargest()函数被用来获取指定列中最大的N个值。
# 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]})
#print(df)
d = df.nlargest(4, 'Value')
print(d)
输出:
Variables Value
6 B 9
8 C 7
1 A 5
9 C 5