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

如何在Pandas中将丹麦locale日期字符串转换为datetime类型

问题原因
  • 列名大小写不匹配:CSV中日期列名为小写date,代码中调用的是首字母大写的df['Date'],实际取到的是空值,转换后自然全为NaT。
  • 语法错误:你贴出的pd.to_datetime调用末尾遗漏了右括号,实际运行会直接触发语法错误,需要先补上。
  • 时间格式符使用错误:代码中用%I对应小时,该符号仅适用于12小时制时间(需搭配上午/下午标识%p使用),示例中的时间为24小时制写法,需替换为%H。
  • 未指定丹麦语 locale:pandas默认locale无法识别丹麦语的月份缩写okt(对应10月),导致%b匹配失败。
解决方案

方案1:pandas 2.0及以上版本(推荐)

直接通过pd.to_datetime的locale参数指定丹麦语环境,无需修改全局设置:

import pandas as pd

df = pd.read_csv("messages.csv", sep=",")
df['DateConverted'] = pd.to_datetime(
    df['date'], 
    errors='coerce',
    format='%d. %b. %Y %H.%M',
    locale='da_DK'  # 丹麦语locale标识
)

方案2:pandas 2.0以下版本

需要先修改全局locale为丹麦语,再执行时间转换,不同系统的locale标识略有区别:

import pandas as pd
import locale

# 不同系统选对应的写法
# locale.setlocale(locale.LC_TIME, 'da_DK.UTF-8') # Linux/Mac 写法
locale.setlocale(locale.LC_TIME, 'danish') # Windows 写法

df = pd.read_csv("messages.csv", sep=",")
df['DateConverted'] = pd.to_datetime(
    df['date'], 
    errors='coerce',
    format='%d. %b. %Y %H.%M'
)
验证结果

运行后示例数据的DateConverted列会正确输出时间值,比如9. okt. 2021 11.41会转为2021-10-09 11:41:00。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:06:03