【问题标题】:Get values of a column having more than a certain value for given number of times获取给定次数超过某个值的列的值
【发布时间】: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


【解决方案1】:

你在寻找这样的东西吗?

def election(df):
    count = df['Votes %'].gt(10).sum()
    regions = ','.join(df['Region'].where(df['Votes %'].gt(10),'None').tolist())
    return pd.Series({'count':count,'regions':regions})
ndf = df.groupby(['Election Year','Party']).apply(election)
ndf = ndf.replace(['None,','None'],'',regex=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多