gpt4 book ai didi

python - 根据总数的分数删除 pandas 数据框中的行

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:12 26 4
gpt4 key购买 nike

country state       year    area
usa iowa 2000 30
usa iowa 2001 30
usa iowa 2002 30
usa iowa 2003 30
usa kansas 2000 500
usa kansas 2001 500
usa kansas 2002 500
usa kansas 2003 500
usa washington 2000 245
usa washington 2001 245
usa washington 2002 245
usa washington 2003 245

在上面的数据框中,我想删除总面积百分比 < 10% 的行。在这种情况下,这将是状态为 iowa 的所有行。在 Pandas 中最好的方法是什么?我尝试了 groupby 但不确定如何继续。

df.groupby('area').sum()

最佳答案

另一种解决方案 drop_duplicates和双boolean indexing :

a = df.drop_duplicates(['state','area'])
print (a)
country state year area
0 usa iowa 2000 30
4 usa kansas 2000 500
8 usa washington 2000 245

states = a.loc[a.area.div(a.area.sum()) >.1, 'state']
print (states)
4 kansas
8 washington
Name: state, dtype: object

print (df[df.state.isin(states)])
country state year area
4 usa kansas 2000 500
5 usa kansas 2001 500
6 usa kansas 2002 500
7 usa kansas 2003 500
8 usa washington 2000 245
9 usa washington 2001 245
10 usa washington 2002 245
11 usa washington 2003 245

关于python - 根据总数的分数删除 pandas 数据框中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41424439/

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