pandas 无法转换为日期时间

unguejic  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(214)

我知道类似的问题也有人问过,但之前的解决方案都不适合我。
我有一系列日期,格式如下:

df['time']
0          2010-01-16 00:00:00
1          2010-01-16 00:00:00
2          2010-01-16 00:00:00
3          2010-01-16 00:00:00
4          2010-01-16 00:00:00

这些有一个360天的日历。
我想将它们转换为panda中的日期时间对象,其中:

df['time']=pd.to_datetime(df['time'], format='%Y-%m-%d'

我只对日期感兴趣,对时间不感兴趣。但是,由于日历是360天,我只收到错误消息"TypeError: <class 'cftime._cftime.Datetime360Day'> is not convertible to datetime".。我知道cftime不支持360天日历,所以我需要手动提取日期,但我尝试过的每种方法都失败了,因为输入的是“cftme._cftime.Datetime360Day”对象,而不是字符串。
有人对此有任何变通办法吗?

gr8qqesn

gr8qqesn1#

下面的解决方案如何?
您可以使用 apply 功能。
然后,如果列的类型不是 datetime,则可以对其进行更改

from datetime import datetime as dt

def convert_to_dt(x):
    return dt.strptime(str(x), '%Y-%m-%d %H:%M:%S')

df['time'] = df.time.apply(convert_to_dt)

相关问题