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

Python pd.to_datetime生成Date列为空 分组求均值返回nan如何解决

问题原因
  • 日期字符串格式与解析格式不匹配:你拼接的日期字符串为%d-%m(日-月)格式,但pd.to_datetime指定的format参数为%d%m,缺少中间的分隔符-,格式不匹配导致解析全部失败,返回空值NaT。
  • 缺失年份参数:datetime类型必须包含年信息,你的数据集中NK Any列就是2013年的年份值,未传入年份也会导致解析失败。
修正方案

方案1:修改原有拼接逻辑

# 补充年份、匹配解析格式即可正常解析
data["Date"] = data[u'NK Any'].apply(lambda x: str(x)) + '-' + data[u'Mes de any'].apply(lambda x: str(x)) + '-' + data[u'Dia de mes'].apply(lambda x: str(x))
data["Date"] = pd.to_datetime(data["Date"], format = '%Y-%m-%d', errors = 'coerce')

方案2:更高效的多列转日期写法(无需apply拼接)

pandas支持直接传入列名组成的字典转日期,性能更高、代码更简洁:

data["Date"] = pd.to_datetime({
    'year': data['NK Any'],
    'month': data['Mes de any'],
    'day': data['Dia de mes']
})
验证结果

修改后再执行后续分组统计代码即可得到正确结果:

accidents = data.groupby(['Date']).size()
print(accidents.mean())
# 输出结果为27.5,即2013年巴塞罗那日均事故数约为28起

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:24:04