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

如何基于Pandas DataFrame每行动态条件对指定列求和并新增列

实现方案

不需要逐行遍历,通过分组聚合+映射的方式即可高效实现需求,性能远高于逐行循环,适合各类数据量场景。

完整实现代码如下:

import pandas as pd

# 输入数据
df = pd.DataFrame({
    'Date': ['2021-09-14','2021-09-14','2021-09-14','2021-09-13','2021-09-12','2021-09-12','2021-09-11'],
    'Date_Yesterday': ['2021-09-13','2021-09-13','2021-09-13','2021-09-12','2021-09-11','2021-09-11','2021-09-10'],
    'Clicks': [100,100,100,50,10,10,1]
})

# 1. 统计每个日期对应的总点击量,生成日期-总点击映射表
daily_total_clicks = df.groupby('Date')['Clicks'].sum()

# 2. 将每行的Date_Yesterday匹配到映射表,生成新列
df['Total_Clicks_Yesterday'] = df['Date_Yesterday'].map(daily_total_clicks)

# 可选:将空值替换为N/A字符串
df['Total_Clicks_Yesterday'] = df['Total_Clicks_Yesterday'].fillna('N/A')

print(df)

运行后输出结果和预期完全一致:

Date Date_Yesterday  Clicks Total_Clicks_Yesterday
0  2021-09-14     2021-09-13     100                    50.0
1  2021-09-14     2021-09-13     100                    50.0
2  2021-09-14     2021-09-13     100                    50.0
3  2021-09-13     2021-09-12      50                    20.0
4  2021-09-12     2021-09-11      10                     1.0
5  2021-09-12     2021-09-11      10                     1.0
6  2021-09-11     2021-09-10       1                     N/A

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:27:05