如何用Pandasonic风格单行代码将DataFrame多列合并为指定格式日期列?
Pandas单行代码实现日期列合并转换
原DataFrame示例(X)
Year Month Day A B C ... 0 2020 10 10 ... 1 2021 1 1 ... 2 2022 1 10 ... 3 2023 10 1 ... ...
目标DataFrame示例(Y)
Date A B C ... 0 2020-10-10 ... 1 2021-01-01 ... 2 2022-01-10 ... 3 2023-10-01 ... ...
单行实现方案
1. 生成datetime类型的Date列(推荐,便于后续日期相关操作)
Y = X.assign(Date=pd.to_datetime(X[['Year', 'Month', 'Day']])).drop(columns=['Year', 'Month', 'Day'])
通过assign新增Date列,利用pd.to_datetime直接接收Year/Month/Day三列生成标准datetime对象,最后移除原拆分的日期列。
2. 生成字符串类型的Date列
Y = X.assign(Date=X.apply(lambda row: f"{row.Year:04d}-{row.Month:02d}-{row.Day:02d}", axis=1)).drop(columns=['Year', 'Month', 'Day'])
用apply逐行格式化字符串,通过格式控制确保月份、日期为两位数字,完成后移除原日期拆分列。
内容的提问来源于stack exchange,提问作者sof
相关产品推荐
相关产品推荐

