【问题标题】:count the number of names according to gender and show top 10根据性别统计姓名的数量并显示前 10 名
【发布时间】:2021-02-02 21:48:27
【问题描述】:

我有一个这样的数据集:

df = pd.DataFrame({'name':["a"," b", "c","d", "e","a"," a", "a"," b", "c","d", "e","a"," a"],
               'gender': ["male", "female", "female", "female", "male","male","male","female","female", "female", "male","male","male"],
              'year':[2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2020],
              'month':[1, 12, 4, 3, 6, 7, 2, 4, 5, 1, 12, 4, 3, 6 ]
              'count':[100, 30, 10, 90,34, 100, 30, 10, 90,34, 100, 30, 10, 90,34, 36, 76]})

数据集显示姓名、性别、出生年份和出生月份以及人数。例如,在 2005 年 1 月,有 100 个名为“a”的婴儿。 我想找到男性和女性的前 10 个常用名字。如下:

我试过这段代码

data.groupby('name','gender')['count'].count().nlargest(10)

【问题讨论】:

    标签: python pandas group-by data-analysis


    【解决方案1】:

    试试:

    df.groupby(['gender','name'])['count'].count().nlargest(10)
    

    当使用groupby 对多个列进行分组时,您应该使用列名列表,而不是将它们作为参数传递给函数。

    另外,PS,你的样本数据结构很糟糕,每一列都有不同数量的数据点,而且名字/性别非常不一致。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 2021-02-12
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多