【发布时间】:2021-08-27 14:39:05
【问题描述】:
我有一个数据框dfas:
Election Year Votes Vote % Party Region
0 2000 42289 29.40 Janata Dal (United) A
1 2000 27618 11.20 Rashtriya Janata Dal A
2 2000 20886 14.50 Bahujan Samaj Party A
3 2000 17747 12.40 Congress B
4 2000 14047 9.50 Independent B
5 2000 17047 10.80 JLS B
6 2005 8358 15.80 Janvadi Party A
7 2005 4428 13.10 Independent A
8 2005 1647 1.20 Ind A
9 2005 1610 11.10 Independent B
10 2005 1334 15.06 Nationalist B
11 2005 1834 28.06 NJM B
12 2010 21114 20.80 Independent A
13 2010 1042 10.5 Bharatiya Janta Dal A
14 2010 835 0.60 Independent A
15 2010 14305 15.50 Independent B
16 2010 22211 17.70 Congress B
17 2010 20011 14.70 INC B
如何获得包含“投票百分比”差异小于 10 的前两方区域的数据框?
期望的输出:
Election Year Region Vote %
2000 A 29.40
2000 A 14.50
2005 B 28.06
2005 B 15.06
2010 A 20.80
2010 A 10.5
我尝试按“选举年”和“地区”进行分组。然后根据“投票百分比”进行排序。但我无法弄清楚如何让所有地区的投票百分比差异小于 10。
非常感谢任何建议。
【问题讨论】:
-
我认为你想要做的是对你的匹配进行分组,然后生成一个基本上是“与最大值的差异”的列。之后,子集到与您的 10pc 事物匹配的行,然后返回。
-
@ifly6,是否需要对“投票百分比”列进行排序以获得前两个值的差异?
-
在 2000 年的区域 A 中,两个最大的政党之间的差异大于 10%。是否有意将其包含在您的输出中?此外,您的原始数据有两行“16”。这是故意的吗?
-
@ifly6,这是一个错误。实际上,我必须寻找前两个政党之间的投票率低于 10% 的地区。因此,输出应该与我发布的不同。最后一行的索引应该为 17。我的错误。更新了数据集。
标签: python pandas dataframe data-science