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

基于其他列条件统计DataFrame指定列值的月度出现次数

实现方案

核心是用groupby+transform组合实现分组统计结果和原表行的对齐,不需要额外做表关联,代码如下:

首先导入依赖、构造测试数据:

import pandas as pd

# 构造原始示例数据
df = pd.DataFrame({
    'Date': ['2015-01-02', '2015-02-02', '2015-02-02', '2015-03-02', '2015-03-02', '2015-03-02'],
    'name': ['Adam', 'David', 'Adam', 'David', 'Hardik', 'David']
})

然后执行统计逻辑:

# 转换日期列为时间格式
df['Date'] = pd.to_datetime(df['Date'])
# 按年月+姓名分组,统计每组出现次数并映射回原表所有行
df['Count'] = df.groupby([df['Date'].dt.to_period('M'), 'name'])['name'].transform('count')
# 可选:如果需要日期列恢复为原始字符串格式,执行下行代码
# df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')

执行后输出的df就和给出的预期效果完全一致。
补充说明:transform方法会将分组后的统计结果同步到组内的每一行,不会改变原表的行数,无需额外做表关联操作,是实现这类需求的最优方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:54:04