我有一个包含秒数的df
,其中一个column
。我想将它们转换为hh:mm
或hh:mm:ss
。
如果时间超过标准24小时制,我仍然希望显示为hh:mm:ss
,而不是'n' days hh:mm:ss
。
举个例子:
import pandas as pd
import numpy as np
import datetime
ts1 = ['21000', np.nan, '40000', np.nan, '49000', '100000']
ts2 = [0, 2, 'yy', 3, 'yy', 'yy']
ts3 = [0, 2, np.nan, 3, 4, np.nan]
d = {'X': ts1, 'Y': ts2, 'Z': ts3}
df = pd.DataFrame(data=d)
输出:
X Y Z
0 21000 0 0.0
1 NaN 2 2.0
2 40000 yy NaN
3 NaN 3 3.0
4 49000 yy 4.0
5 100000 yy NaN
我可以使用以下方法在单个
字符串
上执行此操作:t = str(datetime.timedelta(seconds=21000))
输出 t:
5:50:00
但是如何将同一个函数应用到整个列呢?
#t_col = str(datetime.timedelta(seconds=df['ts1']))
预期输出:
X Y Z
0 5:50:00 0 0.0
1 NaN 2 2.0
2 11:06:40 yy NaN
3 Nan 3 3.0
4 13:36:40 yy 4.0
5 27:46:40 yy NaN