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

如何基于日期对DataFrame中的列进行串联拼接?

按活动日期生成拼接列的实现方法

需求是根据每行中各活动的日期,按日期从早到晚排序对应的活动名称,用-->连接成Concatenation列。以下是用Pandas实现的具体步骤:

步骤1:导入库并构造示例数据

import pandas as pd

# 构造示例DataFrame
data = {
    'Activity A': ['1/1/2022', '1/15/2022'],
    'Activity B': ['1/15/2022', '2/3/2022'],
    'Activity C': ['2/3/2022', '1/1/2022']
}
df = pd.DataFrame(data)

步骤2:转换日期列类型

先把活动对应的日期列从字符串转换为datetime类型,确保排序逻辑准确:

# 批量转换日期列
df[['Activity A', 'Activity B', 'Activity C']] = df[['Activity A', 'Activity B', 'Activity C']].apply(pd.to_datetime)

如果你的日期格式不是月/日/年,可以添加format参数指定格式,比如pd.to_datetime(..., format='%d/%m/%Y')。

步骤3:定义函数生成拼接列

编写函数处理每行数据,按日期排序活动名称后拼接:

def generate_concat_row(row):
    # 将行内的活动名称与日期配对,按日期升序排序
    sorted_pairs = sorted(row.items(), key=lambda x: x[1])
    # 提取排序后的活动名称,用-->连接
    return ' --> '.join([activity for activity, date in sorted_pairs])

# 按行应用函数,生成Concatenation列
df['Concatenation'] = df.apply(generate_concat_row, axis=1)

最终效果

执行后打印df,输出结果如下:

Activity AActivity BActivity CConcatenation
2022-01-012022-01-152022-02-03Activity A --> Activity B --> Activity C
2022-01-152022-02-032022-01-01Activity C --> Activity A --> Activity B

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:55:31