python - 如何避免使用 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)
解决方案
很可能您将源 DataFrame 创建为另一个 DataFrame 的视图(只有一些列和/或只有一些行)。
在您的代码中找到创建 DataFrame 的位置并将其附加.copy()
到那里。
然后您的 DataFrame 将被创建为一个完全独立的 DataFrame(具有自己的数据缓冲区),并且此警告不应再出现。
推荐阅读
- authentication - 我应该为客户端应用程序使用角色吗
- r - 调用 r 脚本:is_quosure(x) 中的错误:缺少参数“x”,没有默认值
- python - Colab 中的神经网络 - RuntimeError:CUDA 错误
- flutter - 颤动中的动画索引堆栈
- java - 在 JAVA 中将 Google 地方信息限制在国家/地区
- javascript - 如何在 React js 中的点击可见部分移动元素?
- c# - 如何在 asp.net webform 应用程序中填充和显示 gridview?
- java - 当我从 Maven 向项目添加一个库时。如何找到我可以使用的课程?
- python - Python Bokeh:带有复选框小部件的交互式多线图,用于显示/隐藏不生成图形的线。有线路限制吗?
- google-sheets - 只希望用户提示填充最后 80 行