【发布时间】:2019-12-24 02:16:11
【问题描述】:
我创建了一个 webscraper,它从 chrome 驱动程序中提取数据,将其放入数据框中,并打印所有值。为了做一些趋势分析,我计划每天运行代码 5 次。因此,我想通过在每个循环中创建一个新工作表来将数据放入 excel。
我的数据采用数据框格式。我的问题源于:
使用openpyxl - 无法输入下面代码中引用的df格式
使用 pandas - 表 1 中的数据已被覆盖。我希望每张表都有一个运行时间的时间戳,但这会完全覆盖。
所以按照我的看法,我可以让 pandas 在每个运行周期中添加一个新工作簿(即添加一个新工作表并将数据附加到那里),或者我需要想办法将 df 放入 openpyxl格式。
from datetime import datetime
import pandas as pd
import numpy as np
path = r"C:\\Users\\Jacob\\Documents\\MyStuff\\weather.xlsx"
now = datetime.now()
j = now.strftime("%m-%d, %H.%M.%S")
x1 = all_weather
df1 = pd.DataFrame(x1)
writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df1.to_excel(writer, sheet_name = str(j))
writer.save()
writer.close()
OR
book = load_workbook('C:\\Users\\Jacob\\Documents\\MyStuff\\weather.xlsx')
now = datetime.now()
j = now.strftime("%m-%d, %H.%M.%S")
sheet = book.create_sheet(str(j))
sheet.append(weather_df)
使用openpyxl时
TypeError: Value 必须是列表、元组、范围或生成器,或字典。提供的价值是
使用熊猫时 工作表每次都会被覆盖。
【问题讨论】:
标签: python excel pandas selenium