星辰幸福
2021-02-08 08:52
采纳率: 80%
浏览 1.5k

python 提取excel的某几列的数据

python 提取excel的某几列的数据,

提取3个列的数据。3个列的数据生成了3个列表。每个列表里面有1000个数据。

我需要把这3个数据按照每个100行切割生成10个excel文件。

3个列的数据按100行数切割生成excel文件。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • Bryce__LY 2021-02-08 09:20
    已采纳
    import pandas as pd
    
    file_name = r"new.xlsx"
    df = pd.read_excel(file_name)
    
    columns = ["a","c","e"]
    df = df[columns]
    print(df)
    
    for i in range(10):
        df_tmp = df[i*100:(i+1)*100]
        df_tmp.to_csv("{}_{}.csv".format(file_name,i))
    
    点赞 评论
  • SoftwareTeacher 2021-02-08 09:02

    https://blog.csdn.net/qq_42738639/article/details/93381989   如果你搜索一下 csdn,就会发现这个博客以及其它很多文章。 

    点赞 评论
  • 星辰幸福 2021-02-08 09:50

    能使用 xlrd,xlsxwriter这2个库写吗?

    点赞 评论
  • 羽落风起 2021-02-08 12:26

    按指定列读取数据,再按设定行数输出为excel,输出支持两种方式,一是,每列按行数生成excel,一是,所有列按行数生成excle。

    import xlrd
    import xlwt
    
    def read(fileName,sheetname,columnList):
        '''
        读取exel
        fileName:excel文件名
        sheetname:分栏名
        columnList: 分栏列序号
        '''
    
        book = xlrd.open_workbook(fileName)#打开一个excel
        sheet = book.sheet_by_name(sheetname) #book.sheet_by_index(0)#根据顺序获取sheet
        
        data=[]
        for one in columnList:
            tmpData=sheet.col_values(one)
            data.append(tmpData)
        
        return data
    
        # print(sheet.cell(0,0).value) #指定行列
        # print(sheet.ncols)#获取excel里面有多少列
        # print(sheet.nrows)#获取excel里面有多少行
        # print(sheet.row_values(0))#获取第一行
        # print(sheet.col_values(1))#取第一列的数据
        # print(sheet.get_rows())#获取所有行数据
    
        # for row in range(sheet.nrows):  #获取行数
        #     if row==0:
        #         continue
        #     url=sheet.cell(row,0).value
        #     print(url)
    
    
    def write(data,rowSzie,state=0):
        '''
        data:二维数据
        rowSize:多少行拆成一个excel文件
        state:根据rowSize,所有列合成一个excel, 0为false  1为true
        '''
    
        if state==0:  #各列按行数独立输出为excle
            for index,one in enumerate(data):
                dataTmp=[]
                for indexTmp,oneData in enumerate(one):
                    dataTmp.append(oneData)
                    if len(dataTmp)==rowSzie:
                        book = xlwt.Workbook()#新建一个excel
                        sheet = book.add_sheet("测试")#添加一个sheet页
    
                        for row,tmp in enumerate(dataTmp):
                            sheet.write(row,0,tmp)
                        
                        book.save(str(indexTmp)+"-"+str(index)+".xls")
                        dataTmp=[]
        
        else: #所有列合并后,按行数输出为excle
            intLen=len(data)
            data=map(list,zip(*data))  #行转列
            dataTmp=[]
            for index,one in enumerate(data):
                dataTmp.append(one)
                if len(dataTmp)==rowSzie:
                    book = xlwt.Workbook()#新建一个excel
                    sheet = book.add_sheet("测试")#添加一个sheet页
                    for index in range(rowSzie):
                        for lenIndex in range(intLen):
                            sheet.write(index,lenIndex,dataTmp[index][lenIndex])
                    
                    book.save(str(index)+".xls")
                    dataTmp=[]
    
    def deal():
        file="./demo.xlsx"
        data=read(file,"one",[0,1,2])
    
        rowSzie=2
        write(data,rowSzie,state=0)
    
    
    if __name__ == "__main__":
        deal()
    点赞 评论

相关推荐 更多相似问题