1

我正在尝试使用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
4

2 回答 2

0

由于 pandas 在github中没有纳秒,因此将其转换为str, 而不是收到以下错误

“日期时间”对象没有属性“纳秒”

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
于 2019-05-17T17:16:15.140 回答
0

我认为你必须在最后使用 .naive()

dates.apply(lambda x: pendulum.parse(x).naive()) #works

看到这个线程:https ://github.com/sdispater/pendulum/issues/246

似乎熊猫试图将时区感知日期时间转换为它自己的时间戳表示,但这种转换不是由天真的日期时间触发的。我认为这里没有任何人有过错,作为 pendulum 和 pandas 的用户,很难将它们一起使用。

于 2019-05-17T17:21:17.570 回答