如何合并列表中非数字开头字符串至下一个数字开头项并转DataFrame
实现步骤
核心逻辑:所有完整条目均以数字开头,只需将非数字开头的行拼接至上一个数字开头的条目末尾即可。
代码实现
# 原始解析得到的列表 raw_list = ['1 ARBOR HILLS WATER WORKS, CORP BEQ-5264-16-PW $1,700.00 LEW', '2 COFFEE LAB ROASTERS, INC BEQ-5456-16-AP $900.00 TTN', '3 HAZEN & SAWYER, P.C BEQ-5277-17-PW $1,500.00 HAR', '4', 'JOHN PUFF', 'CONSTRUCTION', 'COMPANY, INC', 'OEHRC-611-16-PBS $2,500.00 ELM', '5 HORIZON OWNERS, CORP OEHRC-601-17-PBS $2,450.00 YON', '6', 'ONE FRANKLIN', 'OWNERS, CORP. c/o', 'BENCHMARK LM', 'MANAGEMENT, SVCS', 'OEHRC-1204-17-PBS $250.00 WHP', '7 TACO PROJECTS, INC/ THE TACO PROJECT PHP-6717-16-FSE $3,000.00 TTN', '8 NUTTIN TO IT CATERING, LLC PHP-6801-16-FSE $2,000.00 YTN', '9', 'JET ENTERPRISES', 'M13, LLC/ MOE’S', 'SOUTHWEST GRILL', 'PHP-6811-16-FSE $2,250.00 YTN', '10', 'TWO MEN & A LADY,', 'INC/ GORDON’S DELI', 'CAFÉ', 'PHP-6816-16-FSE $1,300.00 CRO', '11 EJG LEGACY, CORP/ LICENSE 2 GRILL PHP-6827-17-FSE $1,450.00 MTP'] res = [] current_item = '' for line in raw_list: # 去除行首尾空白 line = line.strip() # 跳过空行 if not line: continue # 以数字开头则判定为新条目 if line[0].isdigit(): # 保存上一个拼接完成的条目 if current_item: res.append(current_item) current_item = line else: # 非数字开头则拼接至当前条目末尾 current_item += ' ' + line # 补充最后一个条目 if current_item: res.append(current_item)
结果说明
运行代码后得到的res就是你需要的目标列表,可直接用于后续转换为DataFrame的操作。
内容的提问来源于stack exchange,提问作者mjoy
相关产品推荐
相关产品推荐

