df.to_excel(os.path.join(path, 'output.xlsx'), index=False) 如何连续书写不覆盖,代码示例
时间: 2024-09-23 19:14:57 浏览: 48
解决pandas .to_excel不覆盖已有sheet的问题
如果你想在`output.xlsx`文件的基础上追加新的内容而不是覆盖原有的数据,可以每次写入时指定`mode='a'`参数,表示"append"模式。这是在pandas DataFrame的`.to_excel()`函数中实现的。以下是代码示例:
```python
import pandas as pd
import os
path = 'your_directory_path' # 替换为你的文件路径
# 假设你有一个名为new_data的数据帧,你想添加到output.xlsx
new_data = pd.DataFrame([['New Entry', 40]], columns=['Name', 'Age'])
# 检查文件是否存在,如果存在则打开模式为追加
if os.path.exists(os.path.join(path, 'output.xlsx')):
mode = 'a'
else:
mode = 'w'
df_to_write = pd.read_excel(os.path.join(path, 'output.xlsx')) if os.path.isfile(os.path.join(path, 'output.xlsx')) else pd.DataFrame() # 如果文件已存在,先读取原有内容,否则初始化为空DataFrame
# 追加新数据到df_to_write
df_to_write = df_to_write.append(new_data, ignore_index=True)
# 写入Excel文件
df_to_write.to_excel(os.path.join(path, 'output.xlsx'), index=False, mode=mode)
print("Data appended successfully.")
阅读全文