【发布时间】:2021-08-26 22:45:54
【问题描述】:
我有一个数据框dfas:
Election Year Votes Votes % Party Region
0 2000 42289 29.40 Janata Dal (United) A
1 2000 27618 19.20 Rashtriya Janata Dal B
2 2000 20886 14.50 Bahujan Samaj Party C
3 2000 17747 12.40 Congress D
4 2000 14047 9.80 Independent E
5 2005 8358 5.80 Janvadi Party A
6 2005 4428 13.10 Independent B
7 2005 1647 1.20 Independent C
8 2005 1610 11.10 Independent D
9 2005 1334 15.06 Nationalist Party E
10 2010 1114 0.80 Independent A
11 2010 1042 10.5 Bharatiya Janta Dal B
12 2010 835 0.60 Independent C
13 2010 14305 15.50 Independent D
14 2010 22211 17.70 Congress E
我需要找到每个“选举年”中 3 个或更多政党获得超过 10% 投票份额的“地区”。
我已将选举年按升序排序,投票百分比按降序排序:
df1 = df.sort_values(['Election Year','Votes %'], ascending = (True, False))
然后我获得了每个地区的前三名:
top_3 = df1.groupby(['Election Year', 'Region']).head(3).reset_index()
现在如何检查排名前 3 的地区每年是否有 10% 或更多的选票?
【问题讨论】:
-
您的预期输出 df 是什么样的?
-
我只需要每个选举年有 3 个或更多政党获得超过 10% 选票的地区列表。
-
所以在您的示例 df 中,不会返回任何区域?
-
这只是一个表示。在这种情况下可能没有区域。我为此道歉。但是,如果有任何这样的区域,实际上在我的数据集中,如何继续获得该输出?
标签: python pandas dataframe data-science