Skip to main content
 首页 » 编程设计

python之转换 Pandas 时间序列 : UNIX epoch to datetime

2025年05月04日13shanyou

我打算将以下一系列 UNIX 纪元转换为常规日期时间对象:

>> val = pd.Series(["1440643875", "1440644191", "1440645638", "1440998720"]) 
>> val 
0    1440643875 
1    1440644191 
2    1440645638 
3    1440998720 
Name: obj, dtype: object 

似乎有两种方法可以做到这一点。第一个是:

>> pd.to_datetime(val, unit='s') 
ValueError: year is out of range 

第二个:

val.astype("datetime64[s]") 
TypeError: Cannot parse "1445124547" as unit 's' using casting rule 'same_kind' 

这里似乎有什么问题?

我还尝试用“在线纪元计算器”工具检查这些时间戳,他们给出了合理的答案..

请您参考如下方法:

问题是元素是字符串,而不是整数。显然,pd.to_datetime() 不够智能,无法将字符串转换为日期时间。

我的解决方案是这样的:

>> val.astype('int').astype("datetime64[s]") 
0   2015-08-27 02:51:15 
1   2015-08-27 02:56:31 
2   2015-08-27 03:20:38 
3   2015-08-31 05:25:20 
dtype: datetime64[ns]