无法使用摆来分析系列中的日期,但可以一个接一个地工作

时间:2019-05-17 16:53:10

标签: python pandas date pendulum

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

2 个答案:

答案 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