首页 > 解决方案 > 熊猫给出 SettingWithCopyWarning

问题描述

我试图将字符串转换为熊猫数据框中的日期字段。

df['DATE'] = pd.to_datetime(df['DATE'],format='%d%b%Y')

但我收到警告:

C:\anaconda2\lib\site-packages\ipykernel_launcher.py:17: SettingWithCopyWarning: 
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: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

我无法从文档中了解很多。我到底做错了什么?

标签: pythonpandasdataframe

解决方案


这是由于您的代码中较早发生了一些事情;大概您已将其定义df为更大数据帧的子集,可以直接作为切片(如错误消息所示)或通过df = big_df[big_df[col] == 'A']. 警告告诉您,您的原始数据框也将被此操作更改。为避免这种情况,.copy()请在将数据帧生成为切片或较大切片的子集时使用。


推荐阅读