【发布时间】:2021-08-27 05:54:38
【问题描述】:
我有一个数据框dfas:
Election Year Votes Vote % Party Region
0 2000 42289 29.40 Janata Dal (United) A
1 2000 27618 19.20 Rashtriya Janata Dal A
2 2000 20886 14.50 Bahujan Samaj Party B
3 2000 17747 12.40 Congress B
4 2000 14047 19.80 Independent C
5 2000 17047 10.80 JLS C
6 2005 8358 15.80 Janvadi Party A
7 2005 4428 13.10 Independent A
8 2005 1647 1.20 Independent B
9 2005 1610 11.10 Independent B
10 2005 1334 15.06 Nationalist C
11 2005 1834 18.06 NJM C
12 2010 21114 20.80 Independent A
13 2010 1042 10.5 Bharatiya Janta Dal A
14 2010 835 0.60 Independent B
15 2010 14305 15.50 Independent B
16 2010 22211 17.70 Congress C
16 2010 20011 14.70 INC C
如何获得每个选举年有两个或更多政党获得超过 10% 投票百分比的地区列表?
我使用以下代码在按“选举年份”和“地区”分组后按降序对“投票百分比”进行排序,然后每年比较前 2 个投票百分比,但它给出了错误。
df1 = df.groupby(['Election Year','Region'])sort_values('Vote %', ascending = False).reset_index()
如何纠正错误,因为我想在排序后获得每个地区每年前 2 名的“政党”,然后查看他们是否在每个选举年获得超过 10% 的选票?
期望的输出:
Election Year Region Vote %
2000 A 29.40
2000 A 19.40
2000 C 19.80
2000 C 10.80
2005 A 15.80
2005 A 13.10
2005 C 15.06
2005 C 18.06
2010 A 20.80
2010 A 10.5
2010 C 17.70
2010 C 14.70
输出仅包含每年投票率超过 10% 的地区以及按升序排列的选举年份和地区名称。所以,这里只有区域“A”和“C”会出现在输出中。
【问题讨论】:
-
在再次询问几乎完全相同的问题之前,您应该尝试澄清您今天提出的前两个问题之一
-
是的,我试图在评论部分澄清这一点。但我没有得到任何回应。因此,我提出了一个新问题。真的很抱歉创建另一个线程。但是你可以帮助我在这个线程中找出我的问题。
-
正如每个人在这些 cmets 中所说的那样,请将您的预期输出放在您的问题中。不要只说我想要一个列表什么的,真正把你想要的确切结果
-
我在这里更新了所需的输出。如果您能花时间帮助我,那对我来说会很好,因为我需要紧急解决它们。请考虑我的要求。
标签: python pandas dataframe data-science