Pandas 如何将时间戳列转换为日期时间? [复制]

Posted

技术标签:

【中文标题】Pandas 如何将时间戳列转换为日期时间? [复制]【英文标题】:Pandas how to convert a timestamp column to datetime? [duplicate] 【发布时间】:2019-11-29 18:06:57 【问题描述】:

有一个数据框:需要将时间戳列转换为日期时间

 readable = datetime.utcfromtimestamp(1551348672).strftime('%d-%m-%Y 
 %H:%M:%S')
 print(readable) 28-02-2019 10:11:12

这对于一个值来说是可以的,但我需要为名为 time_q 的数据框列提供此结果

data_pre["time_q"] = data_pre["time_q"].map(lambda x: 
datetime.utcfromtimestamp(str(x)).strftime('%d-%m-%Y %H:%M:%S'))

Traceback (most recent call last)
     <ipython-input-65-7f8191ae6c70> in <module>
----> 1 data_pre["time_q"] = data_pre["time_q"].map(lambda x: 
     datetime.utcfromtimestamp(str(x)).strftime('%d-%m-%Y %H:%M:%S'))

~\Anaconda3\lib\site-packages\pandas\core\series.py in map(self, arg, 
na_action)
   2996         """
   2997         new_values = super(Series, self)._map_values(
-> 2998             arg, na_action=na_action)
  2999         return self._constructor(new_values,
  3000                                  
index=self.index).__finalize__(self)

~\Anaconda3\lib\site-packages\pandas\core\base.py in _map_values(self, 
mapper, na_action)
   1002 
   1003         # mapper is a function
-> 1004         new_values = map_f(values, mapper)
   1005 
      1006         return new_values

pandas/_libs/src\inference.pyx in pandas._libs.lib.map_infer()

<ipython-input-65-7f8191ae6c70> in <lambda>(x)
----> 1 data_pre["time_q"] = data_pre["time_q"].map(lambda x: 
datetime.utcfromtimestamp(str(x)).strftime('%d-%m-%Y %H:%M:%S'))

TypeError: an integer is required (got type str)

我希望列 time_q 的所有值都为例如 28-02-2019 10:11:12 和其他具有这种格式的值;相反,我有一条错误消息

【问题讨论】:

【参考方案1】:

试试这个

# if the time_q is not int then convert first to int
data_pre['time_q'] = data_pre['time_q'].astype(int)
data_pre["time_q"] = data_pre["time_q"].apply(lambda x: datetime.utcfromtimestamp(x).strftime('%d-%m-%Y %H:%M:%S'))

【讨论】:

感谢你,结果对我来说还可以 伟大的@CobollecCobollec 如果您觉得有帮助,请点赞或批准

以上是关于Pandas 如何将时间戳列转换为日期时间? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SQL Server 的时间戳列转换为日期时间格式

将UTC时间戳转换为熊猫中的本地时区问题

如何从 parquet 文件中选择 13 位时间戳列,将其转换为日期并存储为数据框?

将纪元时间戳列转换为带有时区的日期时间

Pyspark 将字符串转换为日期时间戳列,包含两种不同的格式

将火花数据帧中的日期时间时间戳转换为 epocTimestamp