【发布时间】:2018-01-25 18:51:56
【问题描述】:
我有一个数据框 column1 dtype obj,格式为:==> 这是数据框的一列
Col1
02.11.2017
11.11.2017
02.12.2017
25.12.2017
我想通过向 df 添加一个新列来将此列转换为日期列:==> 这是将数据框 col1 转换为新的 df 列 NewDate 的代码,会产生以下错误
df['NewDate'] = pd.to_datetime(df['Col1'], format='%d.%m.%Y')
我希望我的结果是:==> 这就是我希望我的结果看起来的样子。
Col1 NewDate
02.11.2017 2017-11-02
11.11.2017 2017-11-11
02.12.2017 2017-12-02
25.12.2017 2017-12-25
但我的错误是:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
但是当我尝试这个时,我仍然得到同样的错误:==>这是我尝试的代码,因为上面的警告/错误但是这样做得到了同样的警告/错误
df.loc[:, 'NewDate'] = pd.to_datetime(df['Col1'].values, format='%d.%m.%Y')
有人能指出我正确的方向吗?任何帮助都非常感谢! PS:对 python 和 pandas 很陌生。
非常感谢!
【问题讨论】:
-
下面的代码是什么?也许需要
df['NewDate'] = pd.to_datetime(df['Col1'], format='%d.%m.%Y') -
因为这个错误有点混乱 - 问题显然在上面的代码行中,但错误消息是关于下面有问题的行:(
-
我无法重现您的错误。请发帖minimal reproducible example。
-
我编辑了我的问题。感谢您的快速回复
标签: python python-3.x pandas dataframe python-3.6