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

如何统计DataFrame某列值出现次数并将次数赋值给对应匹配行

DataFrame新增列统计指定列值的总出现次数

错误原因说明

你之前的df["count"] = df[df[column]==my_dict.keys]写法存在两处问题:

  • my_dict.keys是字典的内置方法,需要加括号调用才能获取所有键值
  • 布尔索引返回的是匹配成功的行子集,维度和原DataFrame不一致,无法直接赋值给新列

实现方案

方案1:沿用你预先构造计数字典的思路

通过map方法将字典的value映射到对应行:

# 第一步:生成日期-出现次数字典
count_dict = df['Date'].value_counts().to_dict()
# 第二步:映射生成新列
df['Occurrence'] = df['Date'].map(count_dict)

方案2:更简洁的内置方法实现

无需手动构造字典,直接用groupby+transform一行实现:

df['Occurrence'] = df.groupby('Date')['Date'].transform('count')

完整测试代码

import pandas as pd
# 构造样例DataFrame
data = {
    "Date": ["2020-04-20", "2020-04-23", "2020-04-22", "2020-04-22", "2020-04-22"],
    "Place_code": [282, 301, 291, 422, 422]
}
df = pd.DataFrame(data, index=[14, 16, 18, 20, 21])
# 执行新增列逻辑
df['Occurrence'] = df.groupby('Date')['Date'].transform('count')
# 调整列顺序和你期望的输出一致
df = df[["Date", "Occurrence", "Place_code"]]
print(df)

运行后输出结果和你预期的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:06:03