将pandas数据框值写入特定表格中的特定单元格。

我有以下pandas数据框:

Name Sheet Row Column Value 0 V1 Sheet1 1 1 89 1 V2 Sheet1 2 1 104 2 V3 Sheet2 1 2 6 3 V4 Sheet3 3 3 -5 

我想将值保存在数据框中指定的工作表,行和列中。 他们不合适,我不知道会有多less张。 我可以通过每一行,并使用xlwt包编写

 ws = wb.add_sheet('Sheet1') ws.write(1, 1, 89) 

我想知道是否可以使用pandas API或更好的方法来实现这个function? 无法看到提供访问Excel的特定行和列的pandas书写。

其中一种方法是通过for循环和iterrows()

 writer = pd.ExcelWriter('out.xlsx') for _,i in df.iterrows(): t_df = pd.DataFrame([i['Value']]) t_df.to_excel(writer, startcol=i['Column'],startrow=i['Row'], sheet_name=i['Sheet'], header=None, index=False) writer.save() 

希望能帮助到你。

使用切片进行相关的行/列select,然后使用to_excel函数将其转储到Excel工作表中。

 to_write_df = ws[(ws['Row']==1) & (ws['Column']==1)] to_write_df.to_excel('output_file_path') 

脱颖而出

我找不到可以直接写的API,但是我发现xlwings模块相当有帮助和直观。 使用下面的代码:

 import xlwings as xw wb = xw.Book('out.xls') for index, row in result.iterrows(): wb.sheets[row['Sheet_Name']].range((row['Row'], row['Column'])).value = row['transformed_value'] wb.save()