2017-07-14 11 views
0

OpenPyxlを使ってファイルを解析するのを助けてください。OpenPyxl:入力ファイルを読み込んでリストや配列を使って出力行列を作る

私は、Excelは、以下のようなファイルがあります。

入力XLSX:A + Bが重複する値を削除するための鍵かもしれない

A  B  C 
1 Tom Red True 
2 Tom Red False 
3 Marry Green False 
4 Marry Green True 
5 Babara Red False 

を。

期待出力XLSX:

A  B  Result 
1 Tom Red True,False 
2 Marry Green False,True 
3 Babara Red False 

**値 "真、偽" の1行目を 入力ファイルを読み、以下のような出力ファイルを作成する(例えば+グリーン、トム+赤は結婚します)。

+2

は、あなたがこれまでにしようとしているものを投稿することができますか? – AlwaysData

答えて

0

で試してみてください:

import collections 
from openpyxl import load_workbook 
wb1 = load_workbook('test.xlsx') 
ws1 = wb1['test'] 
a_dict = collections.defaultdict(list) 
for row in ws1.rows: 
    a_dict[row[0].value+','+row[1].value].append(str(row[2].value)) 

wb2 = Workbook(write_only=True) 
ws2 = wb2.create_sheet() 
for key,value in a_dict.items(): 
    temp = key.split(',') 
    temp.append(','.join(value)) 
    ws2.append(temp) 
wb2.save('new_test.xlsx') 

new_test.xlsxは次のようになります。

enter image description here

+1

これはうまくいくが、これはパンダスが卓越した操作の一種でもある。 http://openpyxl.readthedocs.io/en/latest/pandas.html –

+0

@CharlieClarkもしそうなら、データをデータフレームに読み込むと、データを簡単にマージすることができます。 –

+0

パーフェクト!ありがとうございます:)このコードを簡単に説明できますか? – Ella

関連する問題