我试图在Excel中遍历一列,并检查是否存在字符串。如果字符串存在,我想将列表重置为[]
,然后重复这个过程。在这上面花了太多时间,我似乎不知道自己做错了什么。你知道吗
示例数据:
Open Ended Schemes(Balanced)
Aditya Birla Sun Life Mutual Fund
120518 Aditya Birla Sun Life Equity Hybrid'95 Fund - Direct Plan-Dividend
120517 Aditya Birla Sun Life Equity Hybrid'95 Fund - Direct Plan-Growth
Open Ended Schemes(Debt Scheme - Banking and PSU Fund)
Axis Mutual Fund
128953 Axis Banking & PSU Debt Fund - Bonus Option
117447 Axis Banking & PSU Debt Fund - Daily Dividend Option
代码:
from openpyxl import load_workbook
import os
wb = load_workbook('m.xlsx')
ws = wb.active
keys = ['1', '2']
m_dict = {}
scheme_codes = []
for g in groups[0:2]:
for row in ws.iter_rows('A{}:A{}'.format(ws.min_row +1, ws.max_row)):
# scheme_codes = []
for cell in row:
if cell.value != None:
if 'Schemes' in cell.value:
print('Found Schemes' + str(cell.value))
scheme_codes=[]
break
else:
scheme = cell.value
scheme_codes.append(scheme)
m_dict[g] = scheme_codes
我每个方案只得到1个项目,我尝试过各种方法,要么就是一直通过rows
。文件有18000行。你知道吗
预期产量
{1:[在'A'列中'schemes'第一次重复之前的所有项],2:[在'A'列中'schemes'第二次重复之前的所有项]
现在当我运行代码时,我得到一个len(scheme_codes)=8069,据我所知这是错误的。第一个清单应该是80项左右。你知道吗
这并不是你想要的,它实际上提供了一些额外的信息。。。你知道吗
它提供了一个包含一组scheme\u代码和scheme\u名称的dict,如:
{scheme: {sub_scheme : {(code, name), (code, name), ...}}}
如果你真的只需要顶层方案和它的代码,你应该能够简化它。 只需删除一级defaultdict并使用
scheme_codes[scheme].add(cell.value)
。。。你知道吗输出:
顺便说一下:第一个方案有67个代码。。。你知道吗
相关问题 更多 >
编程相关推荐