Python数据格式化:如何将巴西葡语日期转换为EN或PT-BR数字格式
Python实现巴西葡萄牙语日期转数字格式方案
完全可以实现转换,核心是通过locale模块加载巴西葡语的时间语言规则,识别葡萄牙语月份名称后即可自由格式化为所需的数字日期格式。
完整实现代码
import pandas as pd from datetime import datetime import locale # 按操作系统二选一配置locale即可 # Windows系统 locale.setlocale(locale.LC_TIME, 'Portuguese_Brazil.1252') # Linux/macOS系统 # locale.setlocale(locale.LC_TIME, 'pt_BR.UTF-8') def convert_ptbr_date(raw_date, target_type='ptbr'): # 解析原始巴西葡语日期 date_obj = datetime.strptime(raw_date.strip(), "%d de %B de %Y") # 巴西葡语标准数字格式为dd/mm/yyyy,英文标准数字格式为yyyy-mm-dd return date_obj.strftime("%d/%m/%Y") if target_type == 'ptbr' else date_obj.strftime("%Y-%m-%d") # 这里直接替换成你读取原始数据的代码即可,比如df = pd.read_csv('你的文件路径.csv') # 以下为模拟你的示例数据的代码 raw_data = { "Início": ["15 de março de 1985", "14 de fevereiro de 1986", "23 de novembro de 1987", "16 de janeiro de 1989", "15 de março de 1990"], "Fim": ["14 de fevereiro de 1986", "23 de novembro de 1987", "15 de janeiro de 1989", "14 de março de 1990", "23 de janeiro de 1992"] } df = pd.DataFrame(raw_data) # 批量转换两列日期 df["Início_数字"] = df["Início"].apply(lambda x: convert_ptbr_date(x, target_type='ptbr')) df["Fim_数字"] = df["Fim"].apply(lambda x: convert_ptbr_date(x, target_type='ptbr')) print(df)
运行输出示例
Início Fim Início_数字 Fim_数字 0 15 de março de 1985 14 de fevereiro de 1986 15/03/1985 14/02/1986 1 14 de fevereiro de 1986 23 de novembro de 1987 14/02/1986 23/11/1987 2 23 de novembro de 1987 15 de janeiro de 1989 23/11/1987 15/01/1989 3 16 de janeiro de 1989 14 de março de 1990 16/01/1989 14/03/1990 4 15 de março de 1990 23 de janeiro de 1992 15/03/1990 23/01/1992
注意事项
如果运行时提示locale配置错误,先确认操作系统已经安装了巴西葡萄牙语语言支持包即可。
内容的提问来源于stack exchange,提问作者Fabrício Reis
相关产品推荐
相关产品推荐

