python - 使用 pandas xlsxwriter 写入 excel 表中的多行
问题描述
我正在尝试使用 xlsxwriter 将值写入 excel 工作表。
当试图将数据写入第二行时,数据会覆盖到第一行本身。由于我是 xlsx 作家的新手,我无法弄清楚在哪里迭代。
import pandas as pd
from pandas import ExcelWriter
def outputInExcel(valueToExcel):
with ExcelWriter('pandas.xlsx', mode='A', engine='xlsxwriter') as writer:
# write operation perform
valueToExcel.to_excel(writer,startrow=1, header=False)
worksheet = writer.sheets['Sheet1']
workbook = writer.book
header_format = workbook.add_format({
'bold': True,
'text_wrap': True,
'valign': 'top',
'fg_color': '#D7E4BB',
'border': 1})
for row_num,col_num,value in enumerate(valueToExcel.columns.values):
worksheet.write(0, col_num + 1, value, header_format)
writer.save()
file = "Search.xlsx"#image reference
df = pd.read_excel(file)
for index, row in df.iterrows():
valueToExcel = pd.DataFrame({
'Manager': [row['Manager']], 'Policy Name': [row['Policy Name']], 'Numbers': [row['Numbers'], 'Source IP': [row['Source']], 'Destination IP': [row['Destination']]
})
outputInExcel(valueToExcel)
我期待这样的输出。
我得到这样的输出。
解决方案
您的代码存在一些问题;您每次都覆盖同一行,并且每行都重新启动编写器,因此效率不高。我的建议是一次性编写整个数据框:
writer = ExcelWriter('pandas.xlsx', mode='A', engine='xlsxwriter')
worksheet = writer.sheets['Sheet1']
workbook = writer.book
header_format = workbook.add_format({
'bold': True,
'text_wrap': True,
'valign': 'top',
'fg_color': '#D7E4BB',
'border': 1
})
# write the header separately so you can format it
for col_num, value in enumerate(['Manager', 'Policy Name', 'Numbers', 'Source IP', 'Destination IP']):
worksheet.write(0, col_num + 1, value, header_format)
df = pd.read_excel(file)
# if you only want specific columns
df = df[['Manager', 'Policy Name', 'Numbers', 'Source', 'Destination']]
df.to_excel(writer, sheet_name=name, index=False, header=False, startrow=1)
writer.save()
我试图让它尽可能地等于你的代码,我只是删除了循环并将代码移出函数
推荐阅读
- sql-server - 如何在不同的服务器中加载数据
- swift - 如何在再次运行之前等待 Swift 的 URLSession 完成?
- typescript - 为什么 TypeScript 不抱怨带有计算键的 Partial 类型中的值不正确?
- vba - 在 vba 中传递表单信息
- excel - COUNTIF > 255 个字符的推荐解决方法出现问题
- javascript - Asyncronus React-Native
- django - Django 2 登录注册
- numpy - a[:,:-1] 和 a[:,-1] 有什么区别?
- python - ValueError: max() arg 是一个空序列我该如何解决这个问题
- ios - 为什么我的侧载应用在几天后停止工作?