python 写入 excel 覆盖单元格

python write to excel overwrite cell

我有一个包含国家名称的列表和一个包含包含交易数据的字符串的列表。交易数据应该包含一个国家——如果没有,它应该给出 N/A。如何将交易数据循环到第 1 列,将国家/地区名称循环到第 2 列?到目前为止,这是我的尝试,但是 returns 我覆盖了单元格。

仅供参考:交易数据的长度 < 国家/地区名称的长度。

for i in range(len(transactions)):
    ws.write(i, 0, transactions[i])                   #Paste transaction data into column 0
    for country in countries:
        if country in transactions[i]:
            ws.write(i,1,country)
        else:
            ws.write(i,1,"N/A")

有什么解决这个问题的建议吗?

我建议使用 pandas 而不是直接写入文件。如果我正确理解你的问题,那么这样的事情应该有效:


excel_table = {
    "transactions": [],
    "countries": [],
}

for i, transaction in enumerate(transactions): 
    for country in countries:
        if country in transaction: 
            excel_table["transactions"].append(transaction)
            excel_table["countries"].append(country)
            break
    else: 
        excel_table["transactions"].append(transaction)
        excel_table["countries"].append("N/A")

df = pd.DataFrame(excel_table)

df.to_excel("path.xlsx")

另外,记得安装必要的依赖:

pip install pandas
pip install openpyxl