我是一名新手Python开发者,如果我的问题过于简单请多包涵。
我有一个数据框(dataframe),我的目标是将该数据框的值转换为另一种类型并替换该列。以下是代码:
strtotime = {}
for x in range(0,len(results['CreationDate'])):
strtotime[x] = datetime.strptime(results['CreationDate'][x], '%Y-%m-%dT%H:%M:%S.%f')
results['CreationDate'] = pd.to_datetime(pd.Series(strtotime))
我将值存储为字典,使用pd.Series
将其转换为系列,此时我相当确定我可以用另一个系列替换一个系列:
即results['CreationDate'] = pd.to_datetime(pd.Series(strtotime))
但是,我得到的结果是一列NaT
,而不是这些整洁的日期时间2015-01-01 10:59:37.403
。
然后我使用了results['CreationDate'] = list(pd.to_datetime(pd.Series(strtotime)))
这正是我想要的。所以我的问题是为什么会这样?这是否与对象类型有关?
pd.Series(strtotime)
是从一个字典创建的。也就是说,索引被指定了,因此没有使用默认值。不过,你的观点仍然是正确的。此外,这个答案非常好,解释得非常透彻,值得得到赞同。 - piRSquaredpd.to_datetime
接受一个pd.Series
时,我不会使用map
。这应该可以工作:pandas.to_datetime(results['CreationDate'])
。 - piRSquared