对列进行Groupby以获得计数,同时保留所有其他列不变

萨拉特·纳特拉伊

请看下面的输入数据框。

df = pd.DataFrame({"Name": ['A','A','B','B','C'], 'Tag':[1,2,3,4,5], 'Field':['X','X','Y','Z','R'] })

  Name  Tag Field
0    A    1     X
1    A    2     X
2    B    3     Y
3    B    4     Z
4    C    5     R

我正在将“名称”列的计数作为名为“计数”的附加列查看,同时保留了“变量”和“字段”列的值。

预期产量:

  Name  Count  Tag Field
0    A      2    1     X
1    A      2    2     X
2    B      2    3     Y
3    B      2    4     Z
4    C      1    5     R

我的尝试:

我可以用一个实现这一目标groupby,并merge和低于其。但是,我想我已经使这个问题复杂化了,正在寻找比我的更好的解决方案。请帮忙。

df1 = df.groupby("Name")['Tag'].count().reset_index()
df1 = df1.rename(columns={'Tag' : 'Count'})
df1 = df1.merge(df, on='Name', how='left')
奕奕

您需要的IIUC transform

df["count"] = df.groupby("Name")["Tag"].transform("size")

print (df)

  Name  Tag Field  count
0    A    1     X      2
1    A    2     X      2
2    B    3     Y      2
3    B    4     Z      2
4    C    5     R      1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在保留所有其他列的同时旋转列

获取特定列的所有可能组合,同时保留其他列

如何获得最大值同时保留所有其他值

Pandas DataFrame在Groupby两列之后找到最大值并获得计数

如何将列中的多个元素与所有其他列保持不变?

如何在一列中获取具有最小值的行,并按另一列进行分组,同时保留其他列?

仅将选定的列更改为自定义格式,同时保留所有列在 WPF DataGrid 中保持不变?

有没有办法根据索引折叠几列,同时保留其他列?

在Linux中对列进行排序,保持其他值不变

僅保留特定列的所有行中的字母 - 刪除所有其他字符

数组中所有其他两列之间存在的所有日期的计数

分组依据,同时保留对其他列的访问权限

当确保所有其他列都相同时,仅从CSV文件中读取选定的列

熊猫按三列分组,但保留所有其他列

保留工作表的特定列-删除所有其他列

Ifelse 應用於列的間隔,但保留所有其他列

大熊猫-如何聚合两列并保留所有其他列

EXCEL:我能否从具有特定标题的列中获得特定值的计数,而仅从具有特定文本的列中获得计数?

熊猫通过对现有列的值进行计数来分组创建其他列

当其他列具有特定值时查找groupby的计数

使用Groupby构造一个具有其他列的值计数的数据框

基于其他列对列中的总数进行计数-R

如何在Groupby中保留其他列的行值?

使用 groupby 时保留数据框中的其他列

如何在其他Viewcontroller中获得计数器

汇总一些列,同时保持其他列不变

GroupBy 每周在 Pandas 和其他列中计数

取消将我的单词列出到df中,但保留所有其他列?

将某些列保留在pandas DataFrame中,删除其他所有内容