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

如何在Pandas中基于多列添加value_counts统计列?

基于多列统计DataFrame分组次数的解决方案

你的需求是根据多列(示例中为column1和column2)统计每组的出现频次,并将该频次作为新列添加回原DataFrame。可以用Pandas的groupby结合transform方法实现,无需额外合并操作,直接在原数据上生成结果。

示例代码

假设你的DataFrame名为df,执行以下代码:

import pandas as pd

# 构造示例DataFrame
data = {
    'column1': ['a', 'b', 'c', 'a', 'b'],
    'column2': [2, 2, 3, 2, 1],
    'column3': [True, False, False, False, False],
    'column4': ['asdmn', 'asdd', 'asddas', 'grtgv', 'bdfbf']
}
df = pd.DataFrame(data, index=[1,2,3,4,5])

# 按指定多列分组,统计每组次数并添加为新列
df['counts'] = df.groupby(['column1', 'column2'])['column1'].transform('count')

print(df)

输出结果

column1  column2  column3 column4  counts
1        a        2     True   asdmn       2
2        b        2    False    asdd       1
3        c        3    False  asddas       1
4        a        2    False   grtgv       2
5        b        1    False   bdfbf       1

说明

  • groupby(['column1', 'column2']):指定需要用来分组统计的多列,你可以根据实际需求修改列名列表。
  • transform('count'):对每个分组执行计数操作,并且将结果按原DataFrame的索引对齐,直接填充到对应行的新列中,这一步保证了原数据的行顺序和结构不变。

如果需要基于其他多列组合统计,只需修改groupby中的列名列表即可,比如要按column1、column2、column3三列统计,就改成groupby(['column1', 'column2', 'column3'])。

内容的提问来源于stack exchange,提问作者J Agustin Barrachina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:18:11