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

如何无需函数简化DataFrame三列重复值统计与合并代码?

可行,具体实现如下

假设你的原始DataFrame为df,可以通过以下一段代码完成需求:

import pandas as pd

# 合并三列的统计、补全缺失值并最终合并结果
result = (
    # 将A、B、C列转为长格式,统一处理
    df.melt(value_vars=['A', 'B', 'C'], var_name='col', value_name='val')
    # 统计每列各值的出现次数
    .groupby(['col', 'val'])
    .size()
    .reset_index(name='count')
    # 生成0到三列最大值的完整索引区间
    .set_index(['col', 'val'])
    .reindex(
        pd.MultiIndex.from_product(
            [['A', 'B', 'C'], range(0, df[['A', 'B', 'C']].max().max() + 1)],
            names=['col', 'val']
        )
    )
    # 缺失值填充为0
    .fillna(0)
    .astype(int)
    # 转回宽格式得到最终结果
    .unstack('col')
    .droplevel(0, axis=1)
    .reset_index()
)

核心逻辑说明:

  • 用melt将A、B、C列转为长表结构,把三列的处理逻辑统一,避免重复编写多段代码
  • 通过groupby+size一次性完成三列各值的重复次数统计
  • 利用pd.MultiIndex.from_product生成包含所有目标列、0到三列最大值区间的完整索引,通过reindex补全缺失值
  • 最后将长表转回宽表结构,得到和你之前四段代码等价的合并结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:45:38