熊猫+ groupby

eag*_*ner 6 python data-analysis pandas pandas-groupby

数据集包含4列,其中name是孩子的名字,yearofbirth表示孩子出生的年份,number表示使用该特定姓名命名的婴儿数.

   For example, entry 1 reads, in the year 1880, 7065 girl children were named Mary.
Run Code Online (Sandbox Code Playgroud)

数据集的HEAD

通过大熊猫,我试图找出每年哪个名字最常用的名字.我的代码

   df.groupby(['yearofbirth']).agg({'number':'max'}).reset_index()
Run Code Online (Sandbox Code Playgroud)

上面的代码部分回答了手头的问题.

查询结果

我想要名字和最大数字.

Teo*_*tic 4

根据这个问题的答案,我想出了这个解决方案:

idx = df.groupby(['yearofbirth'])['number'].transform(max) == df['number']
df = df[idx]

print(df)

    name    number  sex yearofbirth
0   Mary    7065    F   1880
Run Code Online (Sandbox Code Playgroud)