2017-09-24 15 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 

私はデータフレームで指定したシート、行と列の値を保存したいです。彼らは順序ではなく、私はそこにどれくらいのシートがあるのか​​分からない。私はちょうど私がこの使用パンダのAPIまたは任意のより良い方法を達成することができれば、私は思っていた各行を通過し、パッケージ

ws = wb.add_sheet('Sheet1') 

ws.write(1, 1, 89) 

をxlwt使用して書くことができますか?特定の行と列にアクセスするためのパンダが執筆のために秀でるのを見ることができませんでした。

+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

方法の一つは、ループと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と私は、セルが値を追加するために各行に対して2つの異なる列から見つけ出されなければならないので、これを反復せずに行うことができるとは思わない。これが反復せずに実行できるのであれば、本当に素晴らしいことでしょう。 – Dark

関連する問題