python - 将新列添加到数据框,这是 groupby 计数的结果

标签 python pandas

我正在尝试获取作者所写的书籍总数,并将其放入一个名为书号的列中,我的数据框还有 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/

相关文章:

python - 将编译器错误输出到python中的txt文件

python - OpenCV - Python Bag Of Words(BoW) 从字典生成直方图

python - Pandas:前 N 个以及剩余的总数。这对于每个组

python - 如何计算 python pandas 数据帧的第一条记录和最后一条记录之间的时间差

javascript - 如何检查 Django 对象是否在 javascript 中为 None?

python - 迭代元组列表

python - 如何保存n-d numpy数组数据,下次快速读取?

python - 如何根据数据框中的类别高效构建 ngram

python - 如何根据python中的Where函数获取两列值

python - 如何过滤数据框中的列表列?