停止to_excel覆盖文本

时间:2019-10-09 10:16:59

标签: python excel pandas.excelwriter

更新-通过将行添加到数据框,然后仅将数据框写入Excel一次,我解决了以下问题。其他读者可能会发现Add one row to pandas DataFrame有用。

更新2-如果要停止将标题名称写入Excel,则可以找到此帮助How do you remove the column name row from a pandas DataFrame?

更新3-如果您想在将数据框写入Excel时删除行号,那么您可能会发现此链接很有用Is there any way to remove column and rows numbers from DataFrame.from_dict?

我希望Python从一个Excel文件(python.xlsx)中读取Amazon URL列表,然后使用URL,产品标题和产品价格填充另一个Excel文件(python2.xlsx)。我不想为每个产品创建一个新的Excel工作表。我不希望将新数据写入sheet1时覆盖现有数据。而且我也不需要to_excel命令将标头名称和行号写入Excel。

我查看了How to write to an existing excel file without overwriting data (using pandas)?,但无法将其应用于我的问题。

有没有一种方法可以停止将标题名称和行号写入Excel?有没有一种方法可以阻止现有文本在电子表格中被覆盖?

Row = 0
MaxRow = len(df)
while Row <= MaxRow:
    URL = (df.iloc[Row,0]) 
    headers  = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'}
    page = requests.get(URL, headers=headers)
    soup = BeautifulSoup(page.content, 'html.parser')
    title = soup.find(id="productTitle").get_text()
    price = soup.find(id="priceblock_ourprice").get_text()
    converted_price=float(price[1:6])
    df2 = pd.DataFrame({'Url':[URL],
                        'Title':[title.strip()],
                        'Price':[converted_price]})
    writer = ExcelWriter(r'C:\Users\HP\Documents\python2.xlsx')
    df2.to_excel(writer, sheet_name='Sheet1', startrow=Row,startcol=2)
    writer.save()
    Row = Row + 1
    if Row == MaxRow:
        break

0 个答案:

没有答案