2017-07-14 81 views
0

请帮助我使用OpenPyxl解析文件。OpenPyxl:读取输入文件并使用列表或数组生成输出矩阵

我有Excel文件象下面这样:

输入XLSX:

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

A + B可能是删除重复值的键。 (例如结婚+绿,汤+红) 读取输入文件,并输出文件象下面这样:

预计输出XLSX:

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

**值 “真,假”,在第一行。

+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

虽然这会起作用,但这也是Pandas擅长的操作。 http://openpyxl.readthedocs.io/en/latest/pandas.html –

+0

@CharlieClark是的,如果是这样,读取数据到一个数据框,那么合并数据会容易得多。 –

+0

完美!感谢您的帮助:)您能简单地解释一下这段代码吗? – Ella

相关问题