我是大熊猫的新手,如果我将日期列拆分为单独的小时,分钟,秒等列的方法有问题,我很好奇。
我的数据框(df)中有一列只包含日期('日期')。我使用下面的代码行将其转换为一系列时间戳:
dt = to_datetime(df['dates'], format='%m/%d/%Y %H:%M:%S.%f', errors='ignore')
当我使用for循环遍历dt时,我会正确解析所有日期,并且可以调出时间戳的单独属性而不会出现问题。例如:
for i in [d.year for d in dt]:
print(i) # Correctly prints 2017 for all dates
for i in [d for d in dt]:
print(type(i)) # Prints <class 'pandas._libs.tslib.Timestamp'>
但是当我尝试使用下面的代码行向我的数据框添加一个新列时:
df['year'] = Series([d.year for d in dt], index=df.index)
我收到属性错误:
AttributeError: 'str' object has no attribute 'year'
一些示例日期字符串是:'09 / 22/2017 19:23:12.993','09 / 01/2017 2017:47:11.593'。
有谁知道为什么python似乎在最后一个例子中将d解释为字符串而不是前两个?