根据总分数丢弃pandas数据帧中的行

时间:2017-01-02 09:47:08

标签: python pandas

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()

2 个答案:

答案 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