首页 > 解决方案 > 为什么我在 pandas 访问 MySQL 时得到 Timedelta 类型

问题描述

MySQL 中的数据类型是time,但是当我通过 pandas 访问它时,dataframe 中的类型变成Timedelta. 我的代码是

df = pandas.read_sql_query(“select * from table1”, con=newConnect)

标签: pythonmysqlpandas

解决方案


因为timedelta是 Pandas/Numpy 中最接近 MySQL 的time数据类型。

考虑以下数据框:

In [306]: df
Out[306]:
       time
0  10:11:12
1  22:23:24

In [307]: df.dtypes
Out[307]:
time    object
dtype: object

您可以将其转换为datetime(这将需要一个日期部分):

In [308]: pd.to_datetime(df.time)
Out[308]:
0   2018-06-19 10:11:12
1   2018-06-19 22:23:24
Name: time, dtype: datetime64[ns]  # <---- note the dtype

或到timedelta

In [309]: pd.to_timedelta(df.time)
Out[309]:
0   10:11:12
1   22:23:24
Name: time, dtype: timedelta64[ns]  # <---- note the dtype

推荐阅读