首页 > 解决方案 > 是否可以在 Pandas 数据透视表中将整数转换为时间间隔?

问题描述

这是我的枢轴数据框:

Name            Tutor     Student
Date
2021-04-12        310         112
2021-04-13        394         210
2021-04-14        357           3
2021-04-15        359           0
2021-04-16        392           0
2021-04-17        307           0
2021-04-18        335           0
2021-04-19          0         121

Tutor 和 Student 列下的值是表示秒数的整数。是否可以将这些值转换为 Python 的时间间隔datetime.timedelta

标签: pythonpandasdatabasepivot-table

解决方案


您正在寻找的输出不是很清楚。

我们可以利用 pd.to_timedelta() 方法将秒转换为 timedelta。

解决方案

df.iloc[:].apply(pd.to_timedelta, unit='s')  

(考虑到您希望将 df 中的所有列转换为 time_delta,如果不是,请使用带有列名的 df.loc)

在提供的输入上进行空运行:

输入

Name    Tutor   Student
Date        
2021-04-12  310 112
2021-04-13  394 210
2021-04-14  357 3
2021-04-15  359 0
2021-04-16  392 0
2021-04-17  307 0
2021-04-18  335 0
2021-04-19  0   121

输出

Name               Tutor    Student
Date        
2021-04-12  0 days 00:05:10 0 days 00:01:52
2021-04-13  0 days 00:06:34 0 days 00:03:30
2021-04-14  0 days 00:05:57 0 days 00:00:03
2021-04-15  0 days 00:05:59 0 days 00:00:00
2021-04-16  0 days 00:06:32 0 days 00:00:00
2021-04-17  0 days 00:05:07 0 days 00:00:00
2021-04-18  0 days 00:05:35 0 days 00:00:00
2021-04-19  0 days 00:00:00 0 days 00:02:01

推荐阅读