【发布时间】:2016-04-02 19:10:51
【问题描述】:
我有一个 SQL 表,其中包含 mySQL time 类型的数据,如下所示:
time_of_day
-----------
12:34:56
然后我使用pandas 读取表格:
df = pd.read_sql('select * from time_of_day', engine)
查看df.dtypes 产生:
time_of_day timedelta64[ns]
我的主要问题是,当我将我的df 写入 csv 文件时,输出的数据一团糟,而不是本质上看起来像我的 SQL 表:
time_of_day
0 days 12:34:56.000000000
我想(显然)将此记录存储为 time,但我在 pandas 文档中找不到任何关于时间 dtype 的内容。
pandas 是不是故意缺少这个功能?有没有办法解决我的问题而不需要 janky 数据转换?
似乎这应该是初级的,但我很困惑。
【问题讨论】:
-
pandas.to_datetime 给出了什么?
-
它返回
1970-01-01 12:34:56 -
当 mysql 列是 TIME 类型时,pandas 返回 TimeDelta 时同样的问题。当列类型为 DATETIME 时,我没有得到这种行为。 Pandas read_sql 方法中没有解析时间的选项。
-
我认为的问题是 NumPy 没有实现
time类,而 Pandas 是基于 NumPy 构建的。所以不要认为这对 Pandas 来说是自然的。
标签: python pandas datetime time timedelta