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 如何将时间戳列转换为日期时间? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 parquet 文件中选择 13 位时间戳列,将其转换为日期并存储为数据框?