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

如何在Pandas中合并日列与月年列生成日期列?

解决Pandas合并日、月年列生成标准日期列的问题

当然可以实现这个需求,下面是针对你提供的DataFrame结构的具体实现步骤:

首先还原你的原始DataFrame:

import pandas as pd

df = pd.DataFrame({
    '日': [13, 15, 24],
    '月年': ['septiembre /98', 'August/98', 'Novem /98']
})

接下来处理「月年」列中的多语言/缩写月份文本,将其映射为两位数字的月份代码:

# 定义月份映射字典,覆盖数据中出现的所有月份变体
month_mapping = {
    'septiembre': '09',  # 西班牙语九月
    'August': '08',       # 英语八月
    'Novem': '11'         # November的简写,对应十一月
}

# 拆分「月年」列,提取月份文本和年份
df[['月份文本', '年份']] = df['月年'].str.split('/', expand=True)
# 去除月份文本两端的空格(比如处理'septiembre '这类带空格的内容)
df['月份文本'] = df['月份文本'].str.strip()
# 将月份文本映射为两位数字
df['月份'] = df['月份文本'].map(month_mapping)
# 拼接日、月、年成DD-MM-YY格式的日期字符串
df['日期'] = df['日'].astype(str) + '-' + df['月份'] + '-' + df['年份'].str.strip()

# 保留目标列,生成最终DataFrame
final_df = df[['日', '月年', '日期']]
print(final_df)

运行后将得到你预期的结果:

日月年日期
13septiembre /9813-09-98
15August/9815-08-98
24Novem /9824-11-98

补充说明

如果后续数据出现更多月份变体,只需在month_mapping字典中添加对应的键值对即可(比如遇到「Nov」就补充'Nov': '11'),确保映射覆盖所有出现的月份形式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:31:19