如何在 Pandas 中将 timedelta 转换为一天中的时间?

Rya*_*uck 7 python time datetime timedelta pandas

我有一个包含 mySQLtime类型数据的 SQL 表,如下所示:

time_of_day
-----------
   12:34:56
Run Code Online (Sandbox Code Playgroud)

然后我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
Run Code Online (Sandbox Code Playgroud)

我想(显然)将此记录存储为 a time,但我在 Pandas 文档中找不到任何关于 time 的内容dtype

熊猫是不是故意缺少这个功能?有没有办法解决我的问题而无需进行乱码数据转换?

看起来这应该是基本的,但我很困惑。

Rya*_*uck 0

找到了一个解决方案,但我觉得它必须比这更优雅:

def convert(x):
    return pd.to_datetime(x).strftime('%H:%M:%S')

df['time_of_day'] = df['time_of_day'].apply(convert)
Run Code Online (Sandbox Code Playgroud)

  • `TypeError: <class 'pandas._libs.tslibs.timedeltas.Timedelta'> 无法转换为日期时间` (4认同)