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

如何为DataFrame添加计数列以统计元素出现频次

解决方案

步骤1:构造原始DataFrame

import pandas as pd

# 你的原始数据
data = {
    'product1': ['straws', 'melon', 'bread'],
    'product2': ['orange', 'milk', 'bananas'],
    'product3': ['melon', 'book', 'juice'],
    'product4': ['chair', 'coffee', 'chair'],
    'product5': ['bread', 'cake', 'book'],
    'product6': ['milk', 'tea', 'straws']
}
df = pd.DataFrame(data)

步骤2:计算全局元素出现频率

先统计整个DataFrame中每个元素的总出现次数:

# 将DataFrame堆叠成一维序列后统计频率
global_counts = df.stack().value_counts()

得到的global_counts核心结果示例:

straws    2
melon     2
bread     2
milk      2
chair     2
book      2
orange    1
# 其余低频元素均为1次

步骤3:生成每行元素的计数列

遍历原始DataFrame的每个元素,映射对应的全局出现次数:

# 对每个元素应用全局计数映射
count_df = df.applymap(lambda x: global_counts[x])

步骤4:重命名列名

将列名改为你需要的CountProductX格式(若需严格匹配你提供的大小写不一致的列名,可手动指定):

# 统一列名格式
count_df.columns = [f'Count{col.capitalize()}' for col in count_df.columns]

# 若需严格匹配预期的大小写差异,可手动替换:
# count_df.columns = ['CountProduct1', 'CountProduct2', 'CountProduct3', 'Countproduct4', 'Countproduct5', 'CountProduct6']

最终结果

生成的count_df如下:

CountProduct1CountProduct2CountProduct3CountProduct4CountProduct5CountProduct6
212222
222111
211222

说明

你提供的预期输出中部分数值与实际统计结果不符(比如straws实际在全局出现2次,但预期第一行CountProduct1为1),上述结果是基于全局元素出现次数的正确统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:57:22