我正在用xlrd从xls电子表格中读取数据。首先,我收集包含所需数据的列的索引(在每个实例中可能并不总是在同一列中):
amr_list, pssr_list, inservice_list = [], [], []
for i in range(sh.ncols):
for j in range(sh.nrows):
if 'amrprojectnumber' in sh.cell_value(j,i).lower():
amr_list.append(sh.cell_value(j,i))
if 'pssrnumber' in sh.cell_value(j,i).lower():
pssr_list.append(sh.cell_value(j,i))
if 'inservicedate' in sh.cell_value(j,i).lower():
inservice_list.append(sh.cell_value(j,i))
现在我有三个列表,我需要使用它们将数据写入新的工作簿。行中的值是相关的。因此,一个列表中一个项目的索引对应于其他列表中项目的相同索引。在
amr_list
具有重复的字符串值。例如:
pssr_list
始终与amr_list
共享相同的值,但包含其他信息:
['4006BA(1)','4006BA(2)','4007AC(1)','4007AC(2)','4007AC(3)']
最后,inservice_list
可能包含也可能不包含可变日期(从excel读取):
[40780.0, '', 40749.0, 40764.0, '']
这是我想要的数据结果:
amr = { '4006BA':[('4006BA(1)',40780.0),('4006BA(2)','')], '4007AC':[('4007AC(1)',40749.0),('4007AC(2)',40764.0),('4007AC(3)','')] }
但我很难弄清楚如何简单地到达那里。提前谢谢。在
也许这可以帮助:
这将以您要查找的格式打印数据。在
调查itertools.groupby以及
对于您的情况:
^{pr2}$请注意,这假设您的输入按amr\u list排序。在
另一种方法是:
不需要对输入进行排序。在
相关问题 更多 >
编程相关推荐