如何从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

并且不知道如何改变格式.

在导入数据时,我try 将格式更改为字符串.

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

并具有相同的结果,并且不能将格式更改为日期时间.时间增量

推荐答案

如果您在Excel中有DateTime/Time对象,最简单的方法可能是将其作为字符串导入,在缺少时添加引用日期,转换为to_datetime并减go 引用:

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))

另一种 Select 是保留原始类型,并使用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

Python相关问答推荐

在Python中对分层父/子列表进行排序

将tdqm与cx.Oracle查询集成

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

使用Python更新字典中的值

Python脚本使用蓝牙运行在Windows 11与raspberry pi4

让函数调用方程

合并帧,但不按合并键排序

如何按row_id/row_number过滤数据帧

处理Gekko的非最优解

我对这个简单的异步者的例子有什么错误的理解吗?

使用Python异步地持久跟踪用户输入

极点替换值大于组内另一个极点数据帧的最大值

Polars表达式无法访问中间列创建表达式

如何写一个polars birame到DuckDB

Django.core.exceptions.SynchronousOnlyOperation您不能从异步上下文中调用它-请使用线程或SYNC_TO_ASYNC

递归链表反转与打印语句挂起

如何从一个维基页面中抓取和存储多个表格?

牛郎星直方图中分类列的设置顺序

运行从Airflow包导入的python文件,需要airflow实例?

从`end_date`回溯,如何计算以极为单位的滚动统计量?