看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)性能日志中已给出运行时长(Timedelta 类型),需提取总秒数、分钟部分(舍弃秒) 和剩余微秒数,用于后续精度分析。
源数据:
import pandas as pd
df = pd.DataFrame({
'task': ['T1', 'T2'],
'duration': pd.to_timedelta(['00:03:25.123456',
'00:00:45.500000'])
})
print(df)
输出:
task duration
0 T1 00:03:25.123456
1 T2 00:00:45.500000
要求:
.dt.total_seconds()
得到总秒数(含微秒,浮点)。.dt.components.minutes
提取分钟部分(整数)。.dt.microseconds
提取剩余微秒(0–999999,整数)。total_s
、min
、μs
。期望结果:
task duration total_s min μs
0 T1 00:03:25.123456 205.123456 3 123456
1 T2 00:00:45.500000 45.500000 0 500000
代码如下:
import pandas as pd
df = pd.DataFrame({
'task': ['T1', 'T2'],
'duration': pd.to_timedelta(['00:03:25.123456',
'00:00:45.500000'])
})
df['total_s'] = df['duration'].dt.total_seconds()
df['min'] = df['duration'].dt.components.minutes
df['μs'] = df['duration'].dt.microseconds
print(df)
输出:
task duration total_s min μs
0 T1 00:03:25.123456 205.123456 3 123456
1 T2 00:00:45.500000 45.500000 0 500000
dt.total_seconds()
把 Timedelta 转为浮点秒;dt.components.*
可分别取天/时/分/秒/微秒;dt.microseconds
直接返回剩余微秒部分,适合高精度时长拆解。
(完)
更新时间:2025-09-14 21:49:23 标签:pandas python timedelta 秒级