You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中实现类似COUNTIF功能(保留重复值,不使用value_counts)

解决方案

你可以用Pandas的groupby结合transform方法实现需求,这个方法不会改变原数据的行数,也不需要额外分组操作,直接把每个值的总出现次数映射到对应行:

  1. 先构造示例数据(如果已有现成DataFrame可跳过这步):
import pandas as pd

data = {'COL 1': ['VALUE1', 'VALUE2', 'VALUE1', 'VALUE1', 'VALUE1', 'VALUE3', 'VALUE2', 'VALUE1', 'VALUE3', 'VALUE2']}
df = pd.DataFrame(data)
  1. 生成目标列:
df['Desired Result'] = df.groupby('COL 1')['COL 1'].transform('count')

运行后输出的DataFrame就是你要的结果:

COL 1  Desired Result
0  VALUE1               5
1  VALUE2               3
2  VALUE1               5
3  VALUE1               5
4  VALUE1               5
5  VALUE3               1
6  VALUE2               3
7  VALUE1               5
8  VALUE3               1
9  VALUE2               3

原理很直白:groupby('COL 1')按列值分组,transform('count')计算每个分组的元素数量,同时把这个数量填充回原DataFrame的对应行,完全匹配你的需求,全程不需要分组聚合后再合并。

内容的提问来源于stack exchange,提问作者Θοδωρής Πάλλης

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:25:17