【发布时间】:2021-05-08 13:56:38
【问题描述】:
数据框如下所示:
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", "male"],
'year':[2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2019],
'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]})
显示姓名、性别、出生年月、人数。
例如,2005 年 1 月有 100 个婴儿名为“a”。我想找到男性和女性的前 10 个常用名字,如下所示:
df.sort_values(['gender','count'],ascending=False,inplace=True)
male = df[df['gender']=='male']['name'].head(10).to_list()
female = df[df['gender']=='female']['name'].head(10).to_list()
results = pd.DataFrame({'Male':pd.Series(male),'Female':pd.Series(female)})
print (results)
但显然它给出了重复的金额,例如 5 a 而不是 a 的总金额。我需要总结它们,例如我们在 2005 年有 100 个“a”,在 2009 年有 100 个“a”等等。所以我们总共需要把它们加起来就像 100+ 100 和。最终的结果必须像 a 是男性,并且在 10 年内总共有 500 人被命名为 a 等等。
【问题讨论】:
-
你是按年还是按月分组?
-
我需要总金额。前 2005 年所有月份有多少个“a”?以及在所有年份有多少