如何在Python Pandas DataFrame中合并起止日期与标签相同的行
Pandas合并起止日期与标签相同的行方法
核心思路是按start_date、end_date、label这三列分组,对其他列执行对应的聚合操作,以下是几种常见场景的实现代码:
1. 数值列聚合(求和/均值等)
如果需要合并的是数值类列(比如金额、数量),用求和/均值等统计方法:
import pandas as pd # 先确保日期列是datetime类型(如果原数据是字符串格式) df['start_date'] = pd.to_datetime(df['start_date']) df['end_date'] = pd.to_datetime(df['end_date']) # 按起止日期+标签分组,对数值列求和 merged_df = df.groupby(['start_date', 'end_date', 'label'], as_index=False).sum()
把sum()换成mean()就能得到均值,其他统计方法如max()/min()同理。
2. 文本列拼接
如果需要合并文本类列,将相同分组下的文本用分隔符拼接:
merged_df = df.groupby(['start_date', 'end_date', 'label'], as_index=False).agg({ # 替换成你的文本列名,用逗号拼接内容 'text_column': lambda x: ', '.join(x) })
3. 多列混合聚合
如果不同列需要不同的聚合逻辑,比如数值列求和、文本列拼接:
merged_df = df.groupby(['start_date', 'end_date', 'label'], as_index=False).agg({ 'value_column': 'sum', 'text_column': lambda x: ', '.join(x) })
内容的提问来源于stack exchange,提问作者jellobeann
相关产品推荐
相关产品推荐

