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

将Excel含关键词的SUMIF操作替换为Python DataFrame实现

用Pandas实现同一设备下关键词包含匹配的字段汇总

需求说明

针对同一设备下的每条关键词记录,汇总所有设备相同且关键词包含当前记录关键词的行的cost和conversions字段(例如移动端的"black"关键词,需汇总所有移动端关键词含"black"的记录的cost总和与conversions总和)。

实现步骤与代码

  1. 导入库并读取数据
    假设数据存储为CSV格式,先读取到DataFrame中:
import pandas as pd

# 替换为你的数据路径或数据源
df = pd.read_csv('your_data_file.csv')
  1. 编写分组汇总函数
    定义函数处理单个设备组内的关键词匹配与汇总:
def calc_keyword_agg(group):
    agg_results = []
    # 遍历组内每个唯一关键词
    for target_keyword in group['keyword'].unique():
        # 筛选当前设备下关键词包含target_keyword的所有行
        match_mask = group['keyword'].str.contains(target_keyword, case=False)
        # 计算汇总值
        sum_cost = group.loc[match_mask, 'cost'].sum()
        sum_conversions = group.loc[match_mask, 'conversions'].sum()
        # 收集结果
        agg_results.append({
            'device': group['device'].iloc[0],
            'keyword': target_keyword,
            'total_cost': sum_cost,
            'total_conversions': sum_conversions
        })
    return pd.DataFrame(agg_results)
  1. 分组应用并生成结果
    按device分组后应用上述函数,得到最终汇总表:
final_agg_df = df.groupby('device').apply(calc_keyword_agg).reset_index(drop=True)

关键说明

  • str.contains(target_keyword, case=False):不区分大小写匹配关键词,若需严格区分大小写,将case=False改为case=True即可。
  • 该逻辑会为每个关键词单独计算其对应的包含匹配汇总,完全覆盖需求中的场景(如示例中移动端"black"会汇总所有含"black"的相关记录)。

内容的提问来源于stack exchange,提问作者Shany H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:50:37