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%。在这种情况下,所有行都是状态为爱荷华州。大熊猫最好的方法是什么?我尝试过groupby但不确定如何继续。
df.groupby('area').sum()
答案 0 :(得分:2)
Indy和双drop_duplicates
的另一种解决方案:
{{1}}
答案 1 :(得分:1)
您希望获取每个area
中的state
个值并对其求和。我拿第一个。
groupby('state').area.first().sum()
是我们通过标准化的事情。df[df.area.div(df.groupby('state').area.first().sum()) >= .1]
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