gpt4 book ai didi

python - 在 pandas DataFrame 中基于 MultiIndex 提取组的组长

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:00 25 4
gpt4 key购买 nike

我找到了 this question它演示了如何根据 MultiIndex 的第一级对 DataFrame 进行排序。所以初始的 DataFrame 看起来像

l = [[1,'A',99],[1,'B',102],[1,'C',105],[1,'D',97],[2,'A',19],[2,'B',14],[2,'C',10],[2,'D',17]]
df = pd.DataFrame(l,columns = ['idx1','idx2','col1'])
df.set_index(['idx1','idx2'],inplace=True)

# assume data has been received like this...
print df

col1
idx1 idx2
1 A 99
B 102
C 105
D 97
2 A 19
B 14
C 10
D 17

可以在每个 level=1 组中排序以产生:

           col1
idx1 idx2
1 C 105
B 102
A 99
D 97

2 A 19
D 17
B 14
C 10

我的问题是:如何根据第一层提取每个组的前n个元素?

例如,如果 n=2 那么结果将是:

           col1
idx1 idx2
1 C 105
B 102

2 A 19
D 17

提前感谢您的考虑和回复。

最佳答案

您只需要在已排序数据帧的 groupby 上使用 head:

df.sort_values('col1', ascending=False).groupby('idx1').head(2)

输出:

           col1
idx1 idx2
1 C 105
B 102
2 A 19
D 17

关于python - 在 pandas DataFrame 中基于 MultiIndex 提取组的组长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58438690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com