我正在尝试使用pendulum
解析日期。我有一个TimeStamp
日期,所以我做了以下事情:
df['aux']=df['Date'].dt.date
df['p_date']=df.aux.apply(lambda x: pendulum.parse(x))
带来以下错误:
AttributeError: 'DateTime' object has no attribute 'nanosecond'
但是,如果我这样做了,类似:
pendulum.parse(df.aux[0])
它被解析没问题。我以为apply(lambda x:)
将相同的功能应用于Series
的所有行,但是现在不起作用。发生什么事了?
示例代码:
dates=pd.Series(['2018-03-20','2019-03-21'])
dates.apply(lambda x: pendulum.parse(x)) #Doesn't work
pendulum.parse(dates[0]) #Works
答案 0 :(得分:1)
我认为您必须在末尾使用.naive()
dates.apply(lambda x: pendulum.parse(x).naive()) #works
查看此线程:https://github.com/sdispater/pendulum/issues/246
似乎熊猫试图将可识别时区的日期时间转换为 它是自己的时间戳表示形式,但不会触发转换 天真的日期时间。我认为这里没有人有过错,因为 摆锤和大熊猫的使用者很难使用它们 在一起。
答案 1 :(得分:0)
由于熊猫在github中没有纳秒,因此将其转换为str
,而不是收到以下错误
“ DateTime”对象没有属性“纳秒”
dates.apply(lambda x: str(pendulum.parse(x)))
Out[256]:
0 2018-03-20T00:00:00+00:00
1 2019-03-21T00:00:00+00:00
dtype: object