Python 将excel中的数据框值写入特定工作表中的特定单元格。

Python 将excel中的数据框值写入特定工作表中的特定单元格。,python,excel,pandas,Python,Excel,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 我想将值保存在数据框中指定的表、行和列中。它们不整齐,我不知道会有多少张床单。我可以浏览每一行,然后使用xlwt包进行编写

我有以下数据帧:

   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
我想将值保存在数据框中指定的表、行和列中。它们不整齐,我不知道会有多少张床单。我可以浏览每一行,然后使用xlwt包进行编写

ws = wb.add_sheet('Sheet1')

ws.write(1, 1, 89)

我想知道是否可以使用pandas API或任何更好的方法来实现这一点?无法看到pandas提供对excel的特定行和列的访问以进行写入

对相关行/列选择使用切片,然后使用to_excel函数转储到excel工作表中

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

一种方法是借助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()

希望能有帮助

我找不到一个可以直接编写的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()

你的意思是将值写入excel工作表上的特定单元格?是的,我希望,对于特定单元格,我不必迭代行,只需传递单元格索引序列,但我想这也可以完成工作@orak和我认为这不需要迭代就可以完成,因为必须从每行的两个不同列中找到一个单元格来添加值。如果不用迭代就可以完成,那就太好了。