pandas.DataFrame.to_excel()踩坑

问题     

        今天使用pandas.DataFrame.to_excel()方法将DataFrame中的数据写入表格的时候,发现原有表格的数据消失不见,只剩下新添加的表格。具体情况是使用pandas.read_excel(r'D:\test.xlsx')读入test.xlsx表格中的数据,执行修改操作,然后用df.to_excel(r'D:\test.xlsx')将数据写入原表格中。结果原表格的数据全部消失,只剩下新表格的。

        于是查看官方文档,在上面找到该函数的说明,下图中蓝色的两行说明了为什么会出现这种情况,原因是使用ExcelWriter对象将表格原路径保存时,这个函数会将原表中的内容擦除,只保存DataFrame中的内容。

pandas.DataFrame.to_excel()踩坑_第1张图片

          

         下图中列出的是 to_excel 函数的参数

pandas.DataFrame.to_excel()踩坑_第2张图片

解决方案:

        1. 将数据 “另存为...” 新的文件,也就是修改新数据存储的文件名或路径。这样相当于只读取了原表的内容,没有保存到原表中,避免了对原表的修改。

        2. 使用 “with …… as ……:” 语句,如下所示,这段代码在write_path指定的路径中写入了两个表,分别是“Sheet1”,“Sheet2”,这两个表的内容来自 df 和 df_nlbl

with pd.ExcelWriter(write_path) as writer: 
    df.to_excel(writer, sheet_name='Sheet1')
    df_nlbl.to_excel(writer, sheet_name='Sheet2')

你可能感兴趣的:(python)