最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python excel多行合并的方法

 更新時間:2020年12月09日 09:46:27   作者:py3study  
這篇文章主要介紹了python excel多行合并的方法,幫助大家更好的利用python處理excel表格,感興趣的朋友可以了解下

一、概述
現(xiàn)有一個wenda1.xlsx文件,內容如下:

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

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

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

# !/usr/bin/python3
# -*- coding: utf-8 -*-
import xlrd

# 打開excel文件,創(chuàng)建一個workbook對象
rbook = xlrd.open_workbook('wenda1.xlsx')
# sheets方法返回對象列表,[<xlrd.sheet.Sheet object at 0x103f147f0>]
rbook.sheets()
# xls默認有3個工作簿,Sheet1,Sheet2,Sheet3
rsheet = rbook.sheet_by_index(0) # 取第一個工作簿

faq_tmp_dict = {} # FAQ臨時字典
faq_formal_list = [] # FAQ正式列表
first_category_tag = "" # 一級分類標識
index = 0 # 索引

#循環(huán)工作簿的所有行
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)

執(zhí)行輸出:

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

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

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

# !/usr/bin/python3
# -*- coding: utf-8 -*-
import xlrd

# 打開excel文件,創(chuàng)建一個workbook對象
rbook = xlrd.open_workbook('wenda1.xlsx')
# sheets方法返回對象列表,[<xlrd.sheet.Sheet object at 0x103f147f0>]
rbook.sheets()
# xls默認有3個工作簿,Sheet1,Sheet2,Sheet3
rsheet = rbook.sheet_by_index(0) # 取第一個工作簿

faq_tmp_dict = {} # FAQ臨時字典
faq_formal_list = [] # FAQ正式列表
first_category_tag = "" # 一級分類標識
index = 0 # 索引

#循環(huán)工作簿的所有行
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 xlwt
import json
f = 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 # 計數(shù)器
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')

執(zhí)行代碼,它會生成一個test1.xlsx。

打開文件,效果如下:

以上就是python excel多行合并的方法的詳細內容,更多關于python excel多行合并的資料請關注腳本之家其它相關文章!

相關文章

  • Django中使用group_by的方法

    Django中使用group_by的方法

    這篇文章主要介紹了Django中使用group_by的方法,實例分析了在Django中使用group_by語句的相關技巧,需要的朋友可以參考下
    2015-05-05
  • 使用pandas計算環(huán)比和同比的方法實例

    使用pandas計算環(huán)比和同比的方法實例

    同比和環(huán)比都是為了顯示數(shù)據(jù)的變化速度,但是基數(shù)不同,同比側重長期數(shù)據(jù)趨勢變化,環(huán)比側重于短期內數(shù)據(jù)趨勢變化,下面這篇文章主要給大家介紹了關于如何使用pandas計算環(huán)比和同比的相關資料,需要的朋友可以參考下
    2022-03-03
  • 詳解使用Python處理文件目錄的相關方法

    詳解使用Python處理文件目錄的相關方法

    這篇文章主要介紹了使用Python處理文件目錄的相關方法,使用到了os模塊,需要的朋友可以參考下
    2015-10-10
  • Python GUI編程學習筆記之tkinter界面布局顯示詳解

    Python GUI編程學習筆記之tkinter界面布局顯示詳解

    這篇文章主要介紹了Python GUI編程學習筆記之tkinter界面布局顯示,結合實例形式分析了Python GUI編程中tkinter界面布局顯示的相關操作技巧與使用注意事項,需要的朋友可以參考下
    2020-03-03
  • python paramiko模塊學習分享

    python paramiko模塊學習分享

    這篇文章主要為大家分享了python paramiko模塊的學習資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • python2.7使用scapy發(fā)送syn實例

    python2.7使用scapy發(fā)送syn實例

    這篇文章主要介紹了python2.7使用scapy發(fā)送syn實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 深入理解python虛擬機GIL詳解

    深入理解python虛擬機GIL詳解

    在目前的 CPython 當中一直有一個臭名昭著的問題就是 GIL (Global Interpreter Lock ),就是全局解釋器鎖,他限制了 Python 在多核架構當中的性能,在本篇文章當中我們將詳細分析一下 GIL 的利弊和 GIL 的 C 的源代碼
    2023-10-10
  • 利用python打印出菱形、三角形以及矩形的方法實例

    利用python打印出菱形、三角形以及矩形的方法實例

    最近在開發(fā)中遇到一個問題,需要利用python實現(xiàn)菱形、三角形以及矩形等形狀,發(fā)現(xiàn)網上這方面的資料較少,所以總結分享下,這篇文章主要給大家介紹了關于利用python打印出菱形、三角形以及矩形的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Python如何繪制日歷圖和熱力圖

    Python如何繪制日歷圖和熱力圖

    這篇文章主要介紹了Python如何繪制日歷圖和熱力圖,幫助大家更好的理解和學習Python,感興趣的朋友可以了解下
    2020-08-08
  • Python獲取指定字符前面的所有字符方法

    Python獲取指定字符前面的所有字符方法

    下面小編就為大家分享一篇Python獲取指定字符前面的所有字符方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

本溪市| 扬州市| 汉寿县| 双鸭山市| 万年县| 驻马店市| 玉林市| 靖安县| 永福县| 无棣县| 徐汇区| 柯坪县| 甘孜县| 长顺县| 凯里市| 柳江县| 象山县| 大洼县| 泸水县| 胶南市| 鸡东县| 南京市| 安龙县| 岳西县| 西城区| 松滋市| 香港| 本溪| 中牟县| 石嘴山市| 新化县| 廊坊市| 监利县| 楚雄市| 郯城县| 黄龙县| 庐江县| 临湘市| 和硕县| 嘉兴市| 常宁市|