将函数应用于多列,给出错误:不支持的格式字符串传递给series.\uuuu format__

smdnsysy  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(246)

我有 Dataframe :

Name     in    hit    out
0    Tom  49694  50308  52673
1   nick    305    658    658
2  krish  50308  56356  62015

它的数据以秒为单位,现在我想把它转换成hh:mm:ss,但是hh超过了24小时,并且
所需的输出df:

Name        in       hit       out
0    Tom  13:48:14  13:58:28  14:37:53
1   nick   0:05:05   0:10:58   0:10:58
2  krish  13:58:28  15:39:16  17:13:35

所以我定义了一个函数:

def to_hms(s):
    m, s = divmod(s, 60)
    h, m = divmod(m, 60)
    return '{}:{:0>2}:{:0>2}'.format(h, m, s)

然后尝试将函数应用于所有as

cols = ['in','hit','out']

df[cols] = df[cols].apply(to_hms, axis=1)

但正如标题所说,我犯了一个错误:

TypeError: unsupported format string passed to Series.__format__

如果我尝试一次应用一列,它会工作,但是df有10列需要转换。
获得所需输出的任何变通方法。
蒂亚。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题