提问人:km150801 提问时间:11/8/2023 最后编辑:JNevillkm150801 更新时间:11/8/2023 访问量:33
创建 df,与现有的 excel 数据进行比较,如果有,则忽略,如果没有,则添加到 excel 的底部 - Pandas/Python
Creating df, comparing to existing excel data, if there then ignoring, if not there then adding to bottom of excel - Pandas/Python
问:
我正在从网站提取数据,并通过 pandas 将其推送到 python 中的 excel 文件。下次我提取数据时,我希望它将新数据与 excel 中的数据进行比较。如果它在那里,那么我希望它什么都不做。如果它不存在,我希望它添加到excel中列表的底部。我似乎无法获得持续添加而不是覆盖的代码。我可以让它添加一次,然后它开始覆盖。我遇到的另一个问题是将它与 excel 进行比较,并且仅在它不存在时才添加。帮助?
这是我的原始代码:
reschedules = pd.DataFrame(df)
orders = reschedules["Order #"]
if os.path.exists("reschedules.xlsx"):
addresses = pd.read_excel("reschedules.xlsx")
else:
addresses = pd.DataFrame(reschedules, columns=["Order #", "Account", "Address"])
addresses.to_excel("reschdeules.xlsx", index=False)
for order in orders:
address = order.split("<br>")[0]
if address not in addresses["Order #"].values:
addresses = addresses.append({"Order #": address}, ignore_index=True)
addresses.to_excel("reschedules.xlsx", index=False)
print(addresses)
以下是我在它再次开始覆盖 excel 之前能够工作一两次的内容:
reschedules = pd.DataFrame(df)
builderorders = reschedules["Order #"]
if os.path.exists("reschedules.xlsx"):
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
wb = load_workbook("reschedules.xlsx")
ws = wb['Sheet1']
for row in dataframe_to_rows(reschedules):
ws.append(row)
else:
addresses = pd.DataFrame(reschedules, columns=["Order #", "Account", "Address"])
addresses.to_excel("reschdeules.xlsx", index=False)
答: 暂无答案
评论