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

如何在R中创建按查询条件求和的计算变量querySum?

实现DataFrame按query分组求和并新增列的方法

嘿,这个需求用pandas处理起来特别顺手!我给你分享两种常用的实现方式,都能完美得到你想要的结果:

方法一:groupby() + transform()(推荐)

这是最简洁高效的方式,transform()会把分组聚合后的结果自动匹配回原DataFrame的每一行,不用手动做合并:

import pandas as pd

# 构造你的原始数据
data = {
    'query': ['apples', 'oranges', 'apples', 'bananas', 'apples'],
    'page': ['/apples', '/oranges', '/bad-apples', '/bananas', '/all-fruits'],
    'clicks': [50, 25, 40, 25, 10]
}
df = pd.DataFrame(data)

# 新增querySum列:按query分组后对clicks求和,再广播到每一行
df['querySum'] = df.groupby('query')['clicks'].transform('sum')

print(df)

运行后就会得到你想要的结果:

query         page  clicks  querySum
0   apples       /apples      50       100
1  oranges     /oranges      25        25
2   apples   /bad-apples      40       100
3  bananas     /bananas      25        25
4   apples  /all-fruits      10       100

方法二:先计算分组总和再合并

如果你想更清晰地看到分组求和的过程,可以先单独算出每个query的总点击量,再通过merge()合并回原DataFrame:

# 计算每个query的总点击量
query_totals = df.groupby('query')['clicks'].sum().reset_index(name='querySum')

# 合并回原DataFrame
df = df.merge(query_totals, on='query', how='left')

print(df)

这种方法逻辑更直观,适合刚接触pandas的朋友理解分组和合并的流程,结果和第一种方法完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:36:39