【发布时间】:2017-10-22 10:30:22
【问题描述】:
是否可以将其中包含总秒数的 pandas 数据框列转换为具有 hh:mm 等时间的另一列?
在我的 mysql 查询中,我可以执行类似的操作
SELECT SEC_TO_TIME(xxxx);
但是我的 pandas Dataframe 中的输出转换错误,所以我想用 pandas 而不是 sql 进行从秒到时间的转换... 我正在玩 pd.to_timedelta 函数:
df['time'] = pd.Timedelta(Second(df['sec']))
但它不起作用。
-编辑-
解决了! 这不起作用:
df['time'] = pd.to_datetime(df["sec"], unit='s')
但那是因为 df["sec"] 的 dtype 错误(它是一个对象类型)。我尝试先将列转换为浮动,然后是 pd.to_datetime 函数,现在我有了我想要的:):
df['sec'] = df['sec'].astype('float64')
df['time'] = pd.to_datetime(df["sec"], unit='s')
【问题讨论】:
-
你有样本输入和预期输出吗?
-
谢谢,斯蒂芬!您链接中的帖子让我进入了正确的方向 (df['datetime'] = pd.to_datetime(df["timestamp"], unit='s'))