首页 > 解决方案 > 如何避免使用 pandas to_datetime 方法获取 SettingWithCopyWarning

问题描述

我正在使用 pandas 1.0.1,我正在创建一个新列,将日期列转换为日期时间列,我收到以下警告。我也尝试过使用data.loc[:, "Datetime"],但仍然收到相同的警告。请问如何避免这种情况?

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

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  data["Datetime"] = pd.to_datetime(data["Date"], infer_datetime_format=True)

标签: pythonpython-3.xpandasdataframe

解决方案


很可能您将源 DataFrame 创建为另一个 DataFrame 的视图(只有一些列和/或只有一些行)。

在您的代码中找到创建 DataFrame 的位置并将其附加.copy()到那里。

然后您的 DataFrame 将被创建为一个完全独立的 DataFrame(具有自己的数据缓冲区),并且此警告不应再出现。


推荐阅读