gpt4 book ai didi

python - 使用 Pandas 返回最大的嵌套排序数据框

转载 作者:行者123 更新时间:2023-11-28 21:44:43 25 4
gpt4 key购买 nike

我正在努力处理一个列出大量数据的数据框,如果有意义的话,这些数据具有多个过滤级别。所以我的数据现在按州名字母顺序排序。第二个过滤级别适用于每个县的人口数据。我使用的过滤是 df.sort_values()。我现在需要提取每个州人口最多的三个县,但我不知道如何实现这一目标。

所以我的数据看起来像这样(我在这里省略了行索引):

State    County    Population
Alabama a 100
Alabama b 50
Alabama c 40
Alabama d 5
Alabama e 1
...
Wyoming a.51 180
Wyoming b.51 150
Wyoming c.51 56
Wyoming d.51 5

现在我想从我的数据框中获取每个州人口最多的县。没有和 Pandas 打过交道,我最初的猜测是做一个 for。像这样(显然是错误的):

list_l = []
for i in df['State'].unique(): #Get a series with every unique state listed once
list_l.append(df[(df['State'] == i])).nlargest(3)
return list_l

即使输入此内容,我也知道它没有完全意义,但我不确定如何更好地解释它。希望有人能帮忙。

干杯

最佳答案

我想你需要groupbynlargest :

s = df.groupby('State')['Population'].nlargest(3)
print (s)
State
Alabama 0 100
1 50
2 40
Wyoming 5 180
6 150
7 56
Name: Population, dtype: int64

然后 get_level_values从第二级并选择 ix :

print (s.index.get_level_values(1))
Int64Index([0, 1, 2, 5, 6, 7], dtype='int64')

print (df.ix[s.index.get_level_values(1)])
State County Population
0 Alabama a 100
1 Alabama b 50
2 Alabama c 40
5 Wyoming a.51 180
6 Wyoming b.51 150
7 Wyoming c.51 56

关于python - 使用 Pandas 返回最大的嵌套排序数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40303364/

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