python - Pandas :SettingWithCopyWarning:

标签 python pandas

<分区>

我尝试了以下代码将列转换为“日期”:

df.['DATE'] =  pd.to_datetime(df['DATE'])

df.DATE =  pd.to_datetime(df.DATE)

但我收到以下错误:

/Users/xyz/anaconda3/envs/sensor/lib/python3.6/site-packages/pandas/core/indexing.py:517: 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 self.obj[item] = s

我将代码更改为以下内容:

df.loc[:,'DATE'] =  pd.to_datetime(df.loc[:,'DATE'])

但我仍然得到同样的错误。

同理

for i in df.index:
    df.loc[i,'DATE'] =  pd.to_datetime(df.loc[i,'DATE'])

最佳答案

您需要添加 copy :

df = data.loc[data.ID == 79]

到:

df = data.loc[data.ID == 79].copy()

如果稍后修改 df 中的值,您会发现修改不会传播回原始数据(data),并且 Pandas 会发出警告。

关于python - Pandas :SettingWithCopyWarning:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45170312/

相关文章:

python - 将列表转换为逗号分隔并在 python 中添加引号

python - 在 Pandas DataFrame 中创建名称列

python - 使用 Python 和 Click 创建 shell 命令行应用程序

php - 在 php 中运行 python 脚本

python - Pandas : drop_duplicates().fillna(0) 不填充零

python - 如何使用循环为数据帧提供顺序名称?

python - 使用 pandas 对 Excel 列进行排序

python - 如何根据两个不同列上设置的某些条件填充 pandas 数据框中的列?

python - .Between 函数未按预期工作

python - 验证 json 中指定的 python 正则表达式标志