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

如何为Pandas DataFrame新增列统计指定列及组合列的数值出现次数

解决方案

你可以直接使用Pandas的groupby+transform组合实现需求,该方法是Pandas底层C优化的实现,700万行数据通常几分钟内就能完成运算,效率远高于手写循环。
transform会将分组统计结果广播到分组内的所有行,返回的序列长度和原DataFrame完全一致,可直接赋值为新列,具体代码如下:

# 可选优化:若0、1列重复值较多,先转为category类型可大幅提升运算速度、降低内存占用
df[0] = df[0].astype('category')
df[1] = df[1].astype('category')

# 列5:下位词(0列)出现次数
df[5] = df.groupby(0)[0].transform('count')
# 列6:上位词(1列)出现次数
df[6] = df.groupby(1)[1].transform('count')
# 列7:(0,1)值对出现次数
df[7] = df.groupby([0,1])[0].transform('count')

原方案失效原因说明

你之前使用value_counts得到的是去重后的统计结果,长度为去重后键的数量,远小于原DataFrame的行数,二者索引无法对齐,因此直接赋值会失败。而transform返回的序列和原DataFrame行顺序、长度完全匹配,不需要额外对齐操作。

内容的提问来源于stack exchange,提问作者user10059606

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:54:03