Python教程

python 使用pandas修改数据到excel,报“SettingwithCopyWarning A value is trying to be set on a copy of a slice

本文主要是介绍python 使用pandas修改数据到excel,报“SettingwithCopyWarning A value is trying to be set on a copy of a slice,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

场景:

通过pandas模块,将测试数据回写到excel,测试数据有写到excel文件,但控制台输出警告信息如下

警告:

SettingwithCopyWarning A value is trying to be set on a copy of a slice from a DataFrame

 

 参考文章:https://www.jianshu.com/p/72274ccb647a

原始代码

大概意思是确保当前更改的只有一个值,可能其他值也会受影响

source_data["actual"][0]=actual_res

修改代码

采用单一赋值的方法,指定了某列某个列名的值,修改过后,正常赋值更新到excel文件,无警告

        source_data = pd.read_excel(filename, sheet_name=sheetname)  # 返回一个DataFrame对象,多维数据结构

        # 单一赋值操作进行更新,除去列名,行数从0开始
        # 使用source_data["actual"][0]=actual_res,会返回SettingwithCopyWarning的警告
        source_data.loc[rowid, "actual"] = actual_res
        source_data.loc[rowid, "result"] = test_res

        # 数据写到excel里面,但是报错
        with pd.ExcelWriter(filename) as writer:
            source_data.to_excel(writer, sheet_name=sheetname, index=False)
这篇关于python 使用pandas修改数据到excel,报“SettingwithCopyWarning A value is trying to be set on a copy of a slice的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!