2017-09-24 95 views
1

我有以下的熊猫数据框:将熊猫数据框值写入特定表格中的特定单元格。

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) 

我在想,如果我能做到这一点使用熊猫API或任何更好的方法写?无法看到提供访问Excel的特定行和列的熊猫书写。

+0

您的意思是将值写入Excel工作表上的特定单元格? – Dark

+0

是的,到一个特定的单元 – orak

回答

0

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

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

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

to_excel

1

其中一个方法是使用的帮助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() 

希望它能帮助。

+0

我希望,我不必迭代行,只是通过细胞索引系列,但我想这也能完成工作! – orak

+0

如果有帮助,请投票。谢谢 – Dark

+0

@orak和我不认为这可以没有迭代就可以完成,因为必须从每行的两个不同列中找到一个单元格以添加值。如果这可以在不迭代的情况下完成,那将非常棒。 – Dark

相关问题