我正在尝试获取作者所写的书籍总数,并将其放入一个名为书号的列中,我的数据框还有 15 个其他列。
我在网上查了一下,人们使用 groupby 和 count(),但是它没有创建我想要的列,它只提供一列没有名称的数字,我无法将它与原始数据框放在一起。
author_count_df = (df_author["Name"]).groupby(df_author["Name"]).count()
print(author_count_df)
结果:
Name
A D 3
A Gill 4
A GOO 3
ALL SHOT 10
AMIT PATEL 5
..
vishal raina 7
walt walter 6
waqas alhafidh 3
yogesh koshal 8
zainab m.jawad 9
Name: Name, Length: 696, dtype: int64
预期:带有
的数据框Name other 14 columns from author_df Book Number
A D ... 3
A Gill ... 4
A GOO ... 3
ALL SHOT ... 10
AMIT PATEL ... 5
... ..
vishal raina ... 7
walt walter ... 6
waqas alhafidh ... 3
yogesh koshal ... 8
zainab m.jawad ... 9
最佳答案
将 transform 与 groupby 一起使用并将其分配回去:
df_author['Book Number']=df_author.groupby("Name")['Name'].transform('count')
对于新的 df,使用:
author_count_df = df_author.assign(BookNum=df_author.groupby("Name")['Name']
.transform('count'))
关于python - 将新列添加到数据框,这是 groupby 计数的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57471158/