如何按日期合并DataFrame中同一日期的多条标题行?
按日期合并DataFrame新闻标题的解决方案
先假设你的DataFrame结构类似这样(可对应自己的实际列名调整):
import pandas as pd # 示例数据 df = pd.DataFrame({ 'Company': ['A公司', 'A公司', 'B公司', 'B公司'], 'Date': ['2023-10-01', '2023-10-01', '2023-10-01', '2023-10-02'], 'Title': ['A公司发布新品', 'A公司获行业奖项', 'B公司战略合作', 'B公司营收增长'] })
核心操作方案
根据你的需求选择以下两种分组方式:
1. 按「公司+日期」分组合并(同一公司同一天的新闻合并)
# 分组后用分号连接标题,最后重置索引避免多级索引 merged_df = df.groupby(['Company', 'Date'])['Title'].agg('; '.join).reset_index()
2. 仅按「日期」分组合并(当日所有公司的新闻合并)
如果需要保留公司列,可同时对公司列去重合并:
merged_df = df.groupby('Date').agg({ 'Company': lambda x: ', '.join(pd.unique(x)), # 去重后合并公司名称 'Title': '; '.join # 合并所有当日新闻标题 }).reset_index()
关键说明
- 分隔符可自定义:把
'; '.join换成'\n'.join可以让标题换行显示,或用其他你需要的符号 - 从原始数据操作:如果之前的操作已经搞乱DataFrame,直接重新加载原始数据再执行上述代码,避免中间错误状态干扰
- 检查分组维度:如果不需要区分公司,就只用
Date分组;如果要分公司,必须把Company加入分组列,否则会把不同公司的新闻混在一起
内容的提问来源于stack exchange,提问作者eme
相关产品推荐
相关产品推荐

