将datetime列转换为星期几

问题描述

我正在尝试使用以下代码将日期时间类型列转换为星期几:

date = {'Date': ['2018-10-30','2018-10-30','2018-10-30']}
df = pd.DataFrame(date)
df.Date = df.to_datetime(df.Date)
df.Date.dayofweek()

但是它运行此错误:AttributeError:'Series'对象没有属性'dayofweek'。 为什么要调用Series对象(如果它是日期时间)?

当我像这样对列进行切片时:

[In] df.Date[0].dayofweek()
[Out] 1 

我得到了预期的结果。 有人知道发生了什么吗?

解决方法

删除()是因为Series.dt.dayofweek使用Seriescolumn):

print (df.Date.dt.dayofweek)
0    1
1    1
2    1
3    1
4    1
Name: Date,dtype: int64

不确定您的熊猫版本,但是对我来说,Timestamp.dayofweek也没有()

print (df.Date.iat[0].dayofweek)
1