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

Python中按日期合并重复行并对Views字段求和的实现方法

解决方法:Pandas分组聚合实现行合并与求和

嘿,这个需求在Pandas里简直是家常便饭,用分组聚合就能轻松搞定!我给你一步步拆解怎么做:

核心思路

你需要按Date(日期)和Keywords(关键词)这两个字段作为分组依据,把相同组合的行合并,然后对Views字段进行求和计算。

代码示例

首先假设你的原始DataFrame是这样的(我先构造一个示例数据方便演示):

import pandas as pd

# 构造示例数据(模拟你的原始数据)
data = {
    "Date": ["2024-01-01", "2024-01-01", "2024-01-02", "2024-01-02", "2024-01-02"],
    "Keywords": ["Python", "Python", "Data Analysis", "Python", "Data Analysis"],
    "Views": [100, 150, 80, 200, 120]
}
df = pd.DataFrame(data)

接下来执行分组求和的核心代码:

# 按Date和Keywords分组,对Views求和,同时保持分组列为普通列
result_df = df.groupby(["Date", "Keywords"], as_index=False)["Views"].sum()

执行后得到的result_df就是你要的目标结果:

DateKeywordsViews
2024-01-01Python250
2024-01-02Data Analysis200
2024-01-02Python200

代码解释

  • groupby(["Date", "Keywords"]):指定分组的两个字段,确保只有日期相同且关键词相同的行会被分到同一组
  • as_index=False:这个参数很重要,它会让Date和Keywords保持为结果DataFrame的普通列,而不是成为索引
  • ["Views"].sum():明确只对Views列执行求和操作,避免其他无关字段被错误聚合

额外扩展

如果你的DataFrame还有其他需要聚合的字段(比如Clicks点击量),可以用agg()方法同时处理多个字段:

# 同时对Views和Clicks求和
result_df = df.groupby(["Date", "Keywords"], as_index=False).agg({
    "Views": "sum",
    "Clicks": "sum"
})

如果担心分组后日期排序被打乱,可以再加一行排序代码:

# 确保结果按日期升序排列
result_df = result_df.sort_values("Date")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:06:21