使用 xlsxwriter 将数据从 Dataframe 写入 excel sheet 时出错
Error writing data from Dataframe to excel sheet using xlsxwriter
我有一个数据框,我正在尝试使用 xlsxwriter 模块写入 excel sheet。
下面是我的数据框的样子:
prod_id,prod_name,price,units
prod_a,apple,100,10
prod_b,mango,10,123
prod_c,orange,12,14
我正在尝试将上面的 Dataframe 写入 excel,如下所示:
# Pulling data for the sheet
row = 1
col = 0
# Iterate through the array you have and unpack the tuple at each index
for elm1, elm2, elm3, elm4 in df:
worksheet.write(row, col, elm1, number_format)
worksheet.write(row, col + 1, elm2, number_format)
worksheet.write(row, col + 2, elm3, number_format)
worksheet.write(row, col + 3, elm4, number_format)
row += 1
它抛出一个错误
for elm1, elm2, elm3, elm4 in df:
ValueError: too many values to unpack (expected 4)
错误是因为,您正在使用多个变量循环 df
。相反,您应该只有一个变量。
如果我理解正确,你可以像这样调整你的循环:
for row in df.itertuples():
elm1,elm2,elm3,elm4 = row[1], row[2], row[3], row[4]
worksheet.write(row, col, elm1, number_format)
worksheet.write(row, col + 1, elm2, number_format)
worksheet.write(row, col + 2, elm3, number_format)
worksheet.write(row, col + 3, elm4, number_format)
row += 1
这应该有效。
我有一个数据框,我正在尝试使用 xlsxwriter 模块写入 excel sheet。
下面是我的数据框的样子:
prod_id,prod_name,price,units
prod_a,apple,100,10
prod_b,mango,10,123
prod_c,orange,12,14
我正在尝试将上面的 Dataframe 写入 excel,如下所示:
# Pulling data for the sheet
row = 1
col = 0
# Iterate through the array you have and unpack the tuple at each index
for elm1, elm2, elm3, elm4 in df:
worksheet.write(row, col, elm1, number_format)
worksheet.write(row, col + 1, elm2, number_format)
worksheet.write(row, col + 2, elm3, number_format)
worksheet.write(row, col + 3, elm4, number_format)
row += 1
它抛出一个错误
for elm1, elm2, elm3, elm4 in df:
ValueError: too many values to unpack (expected 4)
错误是因为,您正在使用多个变量循环 df
。相反,您应该只有一个变量。
如果我理解正确,你可以像这样调整你的循环:
for row in df.itertuples():
elm1,elm2,elm3,elm4 = row[1], row[2], row[3], row[4]
worksheet.write(row, col, elm1, number_format)
worksheet.write(row, col + 1, elm2, number_format)
worksheet.write(row, col + 2, elm3, number_format)
worksheet.write(row, col + 3, elm4, number_format)
row += 1
这应该有效。