猿问

无法转换此列的数据时间(对象到时间)

我有一个如下数据框数据类型


    usr_id  year

0   t961    00:50:03.158000

1   t964    03:25:57

2   t335    00:55:00

3   t829    00:04:25.714000



usr_id    object

year      object

dtype: object

我想将年份列数据类型转换为日期时间。我使用了下面的代码。


timefmt = "%H:%M"

test['year'] = pd.to_datetime(

    test['year'], format=timefmt, errors='coerce').dt.time

我得到低于输出


    usr_id  year

0   t961    NaT

1   t964    NaT

2   t335    NaT

3   t829    NaT

如何将此列的数据时间(对象转换为日期时间)?我怎样才能放下秒和微秒?


预期输出


    usr_id   year

0   t961    00:50

1   t964    03:25

2   t335    00:55

3   t829    00:04


眼眸繁星
浏览 132回答 2
2回答

天涯尽头无女友

将to_datetime与 Series.dt.strftime 一起使用:timefmt = "%H:%M"test['year'] = pd.to_datetime(test['year'], errors='coerce').dt.strftime(timefmt)print (test)  usr_id   year0   t961  00:501   t964  03:252   t335  00:553   t829  00:04或者,您可以使用 Series.str.rsplit with 按最后一个拆分,并通过索引选择第一个列表:n=1:test['year'] = test['year'].str.rsplit(':', n=1).str[0]print (test)  usr_id   year0   t961  00:501   t964  03:252   t335  00:553   t829  00:04或通过@Akira解决方案:test['year'] = test['year'].astype(str).str[:5] 

白猪掌柜的

由于列中当前没有实际日期,因此您需要设置默认日期。然后,您可以将格式传递给 pandas 函数。yearto_datetime这可以在这样的单行中完成:test['year'] = pd.to_datetime(test['year'].apply(lambda x: '1900-01-01 '+ x),format='%Y-%m-%d %H:%M:%S')
随时随地看视频慕课网APP

相关分类

Python
我要回答