繁体   English   中英

编写大熊猫数据框值,使其优于特定工作表中的特定单元格。

[英]Write pandas dataframe values to excel to specific cell in a specific sheet.

我有以下熊猫数据框:

   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或其他更好的方法来实现? 无法看到熊猫提供对excel特定行和列的访问以进行编写。

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

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

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

脱颖而出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM