pandas通过for sheet_name in sheet_names进行不覆盖sheet写入数据后进行保存的代码
时间: 2023-11-22 17:53:13 浏览: 116
python项目源码_实例52_Pandas提取指定数据并保存在原Excel工作簿中.rar
你可以使用 `ExcelWriter` 对象来避免覆盖已有的工作表。具体代码如下:
```python
import pandas as pd
# 读取 Excel 文件中所有工作表的数据
xlsx = pd.read_excel('file.xlsx', sheet_name=None)
# 向 Excel 文件中的所有工作表写入新数据
with pd.ExcelWriter('file.xlsx', mode='a') as writer:
for sheet_name, df in xlsx.items():
# 在每个工作表末尾添加新数据,不覆盖原有数据
new_data = pd.DataFrame({'Column A': [1, 2, 3], 'Column B': [4, 5, 6]})
new_df = pd.concat([df, new_data], ignore_index=True)
new_df.to_excel(writer, sheet_name=sheet_name, index=False)
```
上述代码中,`pd.read_excel` 函数读取了 `file.xlsx` 文件中的所有工作表,并将它们存储在一个字典中。然后,我们使用 `pd.ExcelWriter` 对象打开文件,设置 `mode='a'` 参数表示在现有文件中添加数据,而不是覆盖原有数据。在循环中,我们遍历字典中的工作表,并将新数据添加到每个工作表的末尾。最后,我们使用 `to_excel` 方法将修改后的数据写入文件。由于我们使用了 `ignore_index=True` 参数,因此新数据将追加到工作表的末尾,不会覆盖原有数据。
阅读全文