liiks 2022-02-07 22:37 采纳率: 66.7%
浏览 242
已结题

利用python将表格转换为三元组

问题遇到的现象和发生背景

希望利用python将excel表格批量转化为三元组的格式,目前的问题是单个sheet我能操作,多个sheet批量操作的循环就遇到了困难。希望得到各位的帮忙,谢谢!

sheet1

img

sheet2

img

希望实现的效果

img

问题相关代码,请勿粘贴截图
import xlrd

workbook = xlrd.open_workbook(r'E:\\360MoveData\\Users\\Administrator\\Desktop\\存在结束.xls')
list1 = workbook.sheet_by_index(0)

col =list1.ncols
for i in range(col):
    coldate =list1.col_values(i)
    for a,b in enumerate(coldate):
        print(coldate[0],b)


运行结果及报错内容

正常运行,实现效果如图。但无法和事件关联。

img

  • 写回答

2条回答 默认 最新

  • chuifengde 2022-02-08 11:55
    关注
    import pandas as pd
    
    def fun(series, cols):
        lst = series.tolist()
        lstr = []
        for row in zip(cols[1:], lst[1:]):
            if row[1] != '':
                lstr.append([lst[0],row[0],row[1] ])
        return lstr
    
    dfres = pd.DataFrame()
    df = pd.read_excel( "test2.xlsx", sheet_name = None)
    for k, dft in df.items():
        dft = dft.fillna('')
        cols = dft.columns.tolist()
        res = dft.apply(fun,args = (cols,), axis = 1).explode().apply(pd.Series).rename(columns = {0: 'A', 1: 'B',2: "C",})
        dfres = dfres.append(res)
        
    dfres = dfres.reset_index(drop = True)
    print(dfres)
    dfres.to_excel( 'test3.xlsx',index = False)
    
    

    sheet1

    img


    sheet2

    img


    结果

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月8日
  • 创建了问题 2月7日