如何将网页爬取数据保存到已有Excel的指定D列并保留原有数据?
解决Excel保留原有列并新增爬取数据到D列的问题
你的核心问题是直接创建新DataFrame并写入Excel时覆盖了原有数据,正确的做法是先读取原有文件,再添加新列后保存:
修正后的代码示例
import pandas as pd # 1. 读取原有Excel文件,保留A、B、C列数据 df_existing = pd.read_excel(r"C:\__Imagens e Planilhas Python\Facebook\Youtube.xlsx") # 2. 将爬取的links数据作为新列(D列)添加,列名可自定义,比如'Video' df_existing['Video'] = links # 3. 将更新后的DataFrame写回Excel,覆盖原文件(注意备份原文件避免意外) df_existing.to_excel(r"C:\__Imagens e Planilhas Python\Facebook\Youtube.xlsx", index=False, engine='xlsxwriter')
关键说明
- 你之前的代码是新建一个仅包含爬取数据的DataFrame,直接写入会覆盖原有Excel的所有内容,这就是原有列被清空的原因。
- 你尝试的
pd.DataFrame(data, columns=["c"])只是给新DataFrame指定了列名为"c",但没有和原有Excel的数据结合,所以只会生成单独的新列,无法保留原有数据。 - 添加
index=False是为了避免把pandas的索引列写入Excel,防止额外多出一列。
注意事项
如果原Excel文件有复杂格式(比如单元格样式、公式),xlsxwriter可能无法完全保留这些格式,若需要保留格式可以考虑使用openpyxl作为引擎(读取和写入都指定engine='openpyxl')。
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

