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

13位Unix时间戳转日期时间方法及DataFrame转换异常求助

问题排查与解决

你遇到的问题根源在于**map里的lambda函数写法错误**——你在lambda中没有处理单个时间戳x,反而每次都传入了整个alerts['epoch']列,这导致每一行都被赋值为整列转换后的结果(通常是第一行的值重复填充),所以43000行结果完全一致。

正确的解决写法有两种:

1. 直接用pd.to_datetime处理整列(推荐,效率更高)

pd.to_datetime本身支持直接处理Series类型,不需要逐行map,这是最简洁高效的方式:

alerts['date_time'] = pd.to_datetime(alerts['epoch'], origin='unix', unit='ms')

2. 若坚持用map,需正确处理单个元素

如果一定要用map,lambda里要针对每个单独的x做转换,而不是整个列:

alerts['date_time'] = alerts['epoch'].map(lambda x: pd.to_datetime(x, origin='unix', unit='ms'))

额外排查点

如果按上述写法仍有问题,建议做两个检查:

  • 确认alerts['epoch']是数值类型(int或float),如果是字符串类型,先转换为数值:
    alerts['epoch'] = alerts['epoch'].astype(int)
    
  • 检查原始epoch列是否真的存在不同值:可以用alerts['epoch'].nunique()查看唯一值数量,避免是原始数据本身重复导致的结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 15:09:06