如何格式化 pandas timedelta 对象?
How Do I Format a pandas timedelta object?
我正在使用 pandas timedelta
对象来跟踪体育相关数据集中的分段时间,使用以下结构:
import pandas as pd
pd.to_timedelta("-0:0:1.0")
本机报告为:
-1 days +23:59:59
我可以使用 pd.to_timedelta("-0:0:1.0").total_seconds()
获取原始秒数,但如果负数以分钟或小时为单位,那将很笨拙:
对于表达式:
pd.to_timedelta("-1:2:3.0")
如何从 timedelta
对象中获取格式为 "-1:2:3.0
或 -1 hour, 2 minutes, 3 seconds
的报告,而不是 -3723.0000000000005
格式(带有浮点数错误) 或 -1 days +22:57:57
?
这是你想要的吗?
In [223]: df
Out[223]:
delta
0 -1 days +23:59:59
1 -1 days +22:57:57
2 00:00:11
In [224]: df.delta.abs().dt.components
Out[224]:
days hours minutes seconds milliseconds microseconds nanoseconds
0 0 0 0 1 0 0 0
1 0 1 2 3 0 0 0
2 0 0 0 11 0 0 0
查看作为相关问题的答案提供的函数 strfdelta(tdelta, fmt)
:
这是一个很糟糕但效果很好的解决方案。
(pd.to_datetime('2262-04-11') + mydelta).strftime('%H:%M')
我正在使用 pandas timedelta
对象来跟踪体育相关数据集中的分段时间,使用以下结构:
import pandas as pd
pd.to_timedelta("-0:0:1.0")
本机报告为:
-1 days +23:59:59
我可以使用 pd.to_timedelta("-0:0:1.0").total_seconds()
获取原始秒数,但如果负数以分钟或小时为单位,那将很笨拙:
对于表达式:
pd.to_timedelta("-1:2:3.0")
如何从 timedelta
对象中获取格式为 "-1:2:3.0
或 -1 hour, 2 minutes, 3 seconds
的报告,而不是 -3723.0000000000005
格式(带有浮点数错误) 或 -1 days +22:57:57
?
这是你想要的吗?
In [223]: df
Out[223]:
delta
0 -1 days +23:59:59
1 -1 days +22:57:57
2 00:00:11
In [224]: df.delta.abs().dt.components
Out[224]:
days hours minutes seconds milliseconds microseconds nanoseconds
0 0 0 0 1 0 0 0
1 0 1 2 3 0 0 0
2 0 0 0 11 0 0 0
查看作为相关问题的答案提供的函数 strfdelta(tdelta, fmt)
:
这是一个很糟糕但效果很好的解决方案。
(pd.to_datetime('2262-04-11') + mydelta).strftime('%H:%M')