如何导入超过24小时的Excel时间持续数据

1 投票
1 回答
33 浏览
提问于 2025-04-14 16:40

如何从Excel导入数据?

Total time
6:27:53
68:22:26
171:58:44

当我把这些数据导入到Pandas时,结果是这样的。

0                 06:27:53
1      1900-01-02 20:22:26
2      1900-01-07 03:58:44

我不知道怎么改变格式。

我尝试在导入数据时把格式改成字符串。

pd.read_excel('data.xlsx', dtype={'Total time':'str') 

但结果还是一样,无法把格式改成datetime.timedelta。

1 个回答

1

如果你在Excel里有日期和时间的对象,最简单的方法可能是把它们当作字符串导入,然后在缺少的地方加上一个参考日期,接着用to_datetime进行转换,最后再减去这个参考日期。

df = pd.read_excel('data.xlsx', dtype={'Total time': 'str'})

ref = '1900-01-01 '

df['timedelta'] = pd.to_datetime(df['Total time']
                                 .where(df['Total time'].str.match('\d{4}-\d{2}-\d{2}'),
                                        ref+df['Total time'])
                                ).sub(pd.Timestamp(ref))

另外一个选择是保持原来的数据类型,然后使用Python和Pandas进行转换:

from datetime import datetime

def to_timedelta(x):
    ref = datetime(1900, 1, 1)
    if isinstance(x, datetime):
        return x - ref
    return str(x)

df = pd.read_excel('data.xlsx')

df['timedelta'] = pd.to_timedelta(df['Total time'].apply(to_timedelta))

输出结果:

            Total time       timedelta
0             06:27:53 0 days 06:27:53
1  1900-01-02 20:22:26 1 days 20:22:26
2  1900-01-07 03:58:44 6 days 03:58:44

撰写回答