电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python excel多行合并的方法

瀏覽:7日期:2022-07-02 17:11:50

一、概述現有一個wenda1.xlsx文件,內容如下:

python excel多行合并的方法

需要將faq記錄合并為一行,效果如下:

python excel多行合并的方法

注意:faq記錄,每一行用||來拼接。

二、多行轉換一行新建test1.py,內容如下:

# !/usr/bin/python3# -*- coding: utf-8 -*-import xlrd# 打開excel文件,創建一個workbook對象rbook = xlrd.open_workbook(’wenda1.xlsx’)# sheets方法返回對象列表,[<xlrd.sheet.Sheet object at 0x103f147f0>]rbook.sheets()# xls默認有3個工作簿,Sheet1,Sheet2,Sheet3rsheet = rbook.sheet_by_index(0) # 取第一個工作簿faq_tmp_dict = {} # FAQ臨時字典faq_formal_list = [] # FAQ正式列表first_category_tag = '' # 一級分類標識index = 0 # 索引#循環工作簿的所有行for row in rsheet.get_rows(): index +=1 first_category_row = row[0] # 1級分類所在的列 first_category_value = first_category_row.value # 1級分類的值 if first_category_value != ’1級分類’: # 排除第一行,這些都是列名 if first_category_value: # 當1級分類的值不為空時 # 更新一級分類標識,用#連接 first_category_tag = '%s#%s'%(first_category_value,index) faq_like_column = row[1] # FAQ相似句所在的列 faq_like_value = faq_like_column.value # FAQ相似句的值 # 更新臨時字典,不存在默認值為空字典,否則追加到列表中 faq_tmp_dict.setdefault(first_category_tag, []).append(faq_like_value) else: # 當1級分類的值為空時 faq_like_column = row[1] # FAQ相似句所在的列 faq_like_value = faq_like_column.value faq_tmp_dict.setdefault(first_category_tag, []).append(faq_like_value)print(faq_tmp_dict)# 處理臨時字典for i in faq_tmp_dict: tmp_dict = {} # 一級分類,切割#號,取第一個 first_category = i.split(’#’)[0] # print('first_category',first_category) # faq所有記錄,將faq列表轉換為一行,用逗號拼接 faq_like_all = '||'.join(faq_tmp_dict[i]) # print('faq_merge',faq_all) tmp_dict[’first_category’] = first_category tmp_dict[’faq_like_all’] = faq_like_all faq_formal_list.append(tmp_dict)print(faq_formal_list)

執行輸出:

{’閑聊#2’: [’不在嗎?’, ’你好在嗎?’, ’你在不在’, ’有人在么。’, ’你好?’, ’在么?說話啊’, ’客戶在不在?’], ’閑聊#9’: [’你好’, ’客服你好’, ’你好,客服’]}[{’first_category’: ’閑聊’, ’faq_like_all’: ’不在嗎?||你好在嗎?||你在不在||有人在么。||你好?||在么?說話啊||客戶在不在?’}, {’first_category’: ’閑聊’, ’faq_like_all’: ’你好||客服你好||你好,客服’}]

從上面輸出內容,可以看出。將多行合并為一行,并且將faq記錄寫入到一個字典里面了。接下來就可以寫入到新表格了。

三、寫入新表格完整代碼如下:

# !/usr/bin/python3# -*- coding: utf-8 -*-import xlrd# 打開excel文件,創建一個workbook對象rbook = xlrd.open_workbook(’wenda1.xlsx’)# sheets方法返回對象列表,[<xlrd.sheet.Sheet object at 0x103f147f0>]rbook.sheets()# xls默認有3個工作簿,Sheet1,Sheet2,Sheet3rsheet = rbook.sheet_by_index(0) # 取第一個工作簿faq_tmp_dict = {} # FAQ臨時字典faq_formal_list = [] # FAQ正式列表first_category_tag = '' # 一級分類標識index = 0 # 索引#循環工作簿的所有行for row in rsheet.get_rows(): index +=1 first_category_row = row[0] # 1級分類所在的列 first_category_value = first_category_row.value # 1級分類的值 if first_category_value != ’1級分類’: # 排除第一行,這些都是列名 if first_category_value: # 當1級分類的值不為空時 # 更新一級分類標識,用#連接 first_category_tag = '%s#%s'%(first_category_value,index) faq_like_column = row[1] # FAQ相似句所在的列 faq_like_value = faq_like_column.value # FAQ相似句的值 # 更新臨時字典,不存在默認值為空字典,否則追加到列表中 faq_tmp_dict.setdefault(first_category_tag, []).append(faq_like_value) else: # 當1級分類的值為空時 faq_like_column = row[1] # FAQ相似句所在的列 faq_like_value = faq_like_column.value faq_tmp_dict.setdefault(first_category_tag, []).append(faq_like_value)print(faq_tmp_dict)# 處理臨時字典for i in faq_tmp_dict: tmp_dict = {} # 一級分類,切割#號,取第一個 first_category = i.split(’#’)[0] # print('first_category',first_category) # faq所有記錄,將faq列表轉換為一行,用逗號拼接 faq_like_all = '||'.join(faq_tmp_dict[i]) # print('faq_merge',faq_all) tmp_dict[’first_category’] = first_category tmp_dict[’faq_like_all’] = faq_like_all faq_formal_list.append(tmp_dict)print(faq_formal_list)import xlwtimport jsonf = xlwt.Workbook()sheet1 = f.add_sheet(’Sheet1’, cell_overwrite_ok=True)row0 = ['1級分類', 'faq記錄']# 寫第一行for i in range(0, len(row0)): sheet1.write(0, i, row0[i])# # 加載json文件# with open('tj.json', ’r’) as load_f:# load_dict = json.load(load_f) # 反序列化文件#num = 0 # 計數器max_length = 0 # 最大長度for i in faq_formal_list: num+=1 # 自增1 faq_col = sheet1.col(1) # faq記錄所在的列 length = len(i[’faq_like_all’]) # 計算長度 # print('長度',length) # 更新最大長度 if max_length < length: max_length = length # 設置表格寬度 faq_col.width = max_length * 20* 20 # 寫入庫名 sheet1.write(num, 0, i[’first_category’]) # faq_like_str = '||'.join(i[’faq_like_all’]) sheet1.write(num, 1, i[’faq_like_all’])# 保存到表格f.save(’test1.xls’)

執行代碼,它會生成一個test1.xlsx。

打開文件,效果如下:

python excel多行合并的方法

以上就是python excel多行合并的方法的詳細內容,更多關于python excel多行合并的資料請關注好吧啦網其它相關文章!

標簽: python
相關文章:
主站蜘蛛池模板: 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 火锅底料批发-串串香技术培训[川禾川调官网] | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 威客电竞(vk·game)·电子竞技赛事官网 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 桌上式超净工作台-水平送风超净工作台-上海康路仪器设备有限公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 比士亚-专业恒温恒湿酒窖,酒柜,雪茄柜的设计定制 | 苹果售后维修点查询,苹果iPhone授权售后维修服务中心 – 修果网 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | HV全空气系统_杭州暖通公司—杭州斯培尔冷暖设备有限公司 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 散热器厂家_暖气片_米德尔顿散热器 | 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 有源电力滤波装置-电力有源滤波器-低压穿排电流互感器|安科瑞 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 云阳人才网_云阳招聘网_云阳人才市场_云阳人事人才网_云阳人家招聘网_云阳最新招聘信息 | 太阳能发电系统-太阳能逆变器,控制器-河北沐天太阳能科技首页 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 浙江上沪阀门有限公司 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 科普仪器菏泽市教育教学仪器总厂 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 北京四合院出租,北京四合院出售,北京平房买卖 - 顺益兴四合院 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏 | 铸钢件厂家-铸钢齿轮-减速机厂家-淄博凯振机械有限公司 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 暴风影音 | 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 泡沫消防车_水罐消防车_湖北江南专用特种汽车有限公司 | 哈尔滨京科脑康神经内科医院-哈尔滨治疗头痛医院-哈尔滨治疗癫痫康复医院 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! |