精华内容
下载资源
问答
  • 今天小编就为大家分享一篇python 实现读取一个excel多个sheet表并合并的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 利用Python,将多个excel文件合并为一个文件 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。 完整代码 # -*- coding: utf-8 -*- #将...
  • 原始数据:相关代码:import osimport pandas as pd# 将文件读取出来放一个列表里面pwd = 'test' # 获取文件目录# 新建列表,存放文件名file_list = []# 新建列表存放每个文件数据(依次读取多个相同结构的Excel文件...

    应用场景:使用pandas把多个相同结构的Excel文件合并为一个。

    原始数据:

    2ebae3b3d3c3b326a5043889d503d10d.png

    相关代码:

    import os

    import pandas as pd

    # 将文件读取出来放一个列表里面

    pwd = 'test' # 获取文件目录

    # 新建列表,存放文件名

    file_list = []

    # 新建列表存放每个文件数据(依次读取多个相同结构的Excel文件并创建DataFrame)

    dfs = []

    for root,dirs,files in os.walk(pwd): # 第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。

    for file in files:

    file_path = os.path.join(root, file)

    file_list.append(file_path) # 使用os.path.join(dirpath, name)得到全路径

    df = pd.read_excel(file_path) # 将excel转换成DataFrame

    dfs.append(df)

    # 将多个DataFrame合并为一个

    df = pd.concat(dfs)

    # 写入excel文件,不包含索引数据

    df.to_excel('test\\result.xls', index=False)

    合并结果:

    e1031da81111a6bd390ebf382963541e.png

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

    展开全文
  • 主要为大家详细介绍了Python多个excel表格合并为一个表格的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 第一次学习py下的py最新版然而网上相关教程都是老版,各种语法错误(纠错使人印象深刻),也许效率不高,但是基本拿来就能用. 根目录下所有txt一次性合并去重,太大了跑的可慢了。。
  • python如何读取多个excel合并到一个excel中思路利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。完整代码# -*- coding: utf-8 -*-#将多个Excel...

    python如何读取多个excel合并到一个excel中

    思路

    利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。

    完整代码

    # -*- coding: utf-8 -*-#将多个Excel文件合并成一个import xlrdimport xlsxwriter#打开一个excel文件def open_xls(file):

    fh=xlrd.open_workbook(file)    return fh#获取excel中所有的sheet表def getsheet(fh):

    return fh.sheets()#获取sheet表的行数def getnrows(fh,sheet):

    table=fh.sheets()[sheet]    return table.nrows#读取文件内容并返回行内容def getFilect(file,shnum):

    fh=open_xls(file)

    table=fh.sheets()[shnum]

    num=table.nrows    for row in range(num):

    rdata=table.row_values(row)

    datavalue.append(rdata)    return datavalue#获取sheet表的个数def getshnum(fh):

    x=0

    sh=getsheet(fh)    for sheet in sh:

    x =1

    return xif __name__=='__main__':    #定义要合并的excel文件列表

    allxls=['F:/test/excel1.xlsx','F:/test/excel2.xlsx']    #存储所有读取的结果

    datavalue=[]    for fl in allxls:

    fh=open_xls(fl)

    x=getshnum(fh)        for shnum in range(x):

    print("正在读取文件:" str(fl) "的第" str(shnum) "个sheet表的内容...")

    rvalue=getFilect(fl,shnum)    #定义最终合并后生成的新文件

    endfile='F:/test/excel3.xlsx'

    wb1=xlsxwriter.Workbook(endfile)    #创建一个sheet工作对象

    ws=wb1.add_worksheet()    for a in range(len(rvalue)):        for b in range(len(rvalue[a])):

    c=rvalue[a][b]

    ws.write(a,b,c)

    wb1.close()

    print("文件合并完成")1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162

    源文件excel1:

    源文件excel2:

    运行结果:

    合并后的excel3:

    python如何根据前两列信息合并多个excel?

    通过输出结果可以发现,value被pack之后,转化为了一段二进制字节串,而unpack可以把该字节串再转换回一个元组,但是值得注意的是对于float的精度发生了改变,这是由一些比如操作系统等客观因素所决定的。

    打包之后的数据所占用的字节数与C语言中的struct十分相似。

    python怎么合并excel的两个sheet并去重?

    思路

    利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。

    完整代码

    # -*- coding: utf-8 -*-#将多个Excel文件合并成一个import xlrdimport xlsxwriter#打开一个excel文件def open_xls(file):

    fh=xlrd.open_workbook(file)    return fh#获取excel中所有的sheet表def getsheet(fh):

    return fh.sheets()#获取sheet表的行数def getnrows(fh,sheet):

    table=fh.sheets()[sheet]    return table.nrows#读取文件内容并返回行内容def getFilect(file,shnum):

    fh=open_xls(file)

    table=fh.sheets()[shnum]

    num=table.nrows    for row in range(num):

    rdata=table.row_values(row)

    datavalue.append(rdata)    return datavalue#获取sheet表的个数def getshnum(fh):

    x=0

    sh=getsheet(fh)    for sheet in sh:

    x =1

    return xif __name__=='__main__':    #定义要合并的excel文件列表

    allxls=['F:/test/excel1.xlsx','F:/test/excel2.xlsx']    #存储所有读取的结果

    datavalue=[]    for fl in allxls:

    fh=open_xls(fl)

    x=getshnum(fh)        for shnum in range(x):

    print("正在读取文件:" str(fl) "的第" str(shnum) "个sheet表的内容...")

    rvalue=getFilect(fl,shnum)    #定义最终合并后生成的新文件

    endfile='F:/test/excel3.xlsx'

    wb1=xlsxwriter.Workbook(endfile)    #创建一个sheet工作对象

    ws=wb1.add_worksheet()    for a in range(len(rvalue)):        for b in range(len(rvalue[a])):

    c=rvalue[a][b]

    ws.write(a,b,c)

    wb1.close()

    print("文件合并完成")1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162

    源文件excel1:

    源文件excel2:

    运行结果:

    合并后的excel3:

    用python把EXCEL中的几组数据按顺序组合

    可以采用一些操作Excel的模块去实现,比如xlrd、xlwt、openpyxl、xlsxwriter等模块。xlrd模块主要用于读取Excel表,xlwt与xlsxwriter模块主要用于将数据写入表中,两个模块任选其一即可,但是xlwt与xlsxwriter模块不支持修改表,所以在信息追加的时候会较麻烦,有些朋友可能这个地方遇到了很大的问题,其实这个问题至少有两种思路解决:

    A、换成其他模块,比如openpyxl等,这个模块实现起来会相对简单一些,比如目前已经收到的苏wisdom同学采用的就是这种方法,值得表扬,所以以下方法1会参照苏wisdom同学的答案。此外,截止至目前为止『歹ピ№ㄕ』同学、微雨同学、黄梦颖同学已经提交第二次作业,一并表扬。

    B、仍然使用xlwt与xlsxwriter等模块,但是先将每次读取的信息存储到list(列表)中,然后,最后一次写入。这一种方式稍微复杂一些,所以老师在方法2中采用这种方式去写,目的是给大家一个解决方案的参考,有更优的方案可以随时邮箱反馈。

    此外,还有一个难点,即一个表格中有多个sheet,我们希望能够用程序自动获取这多个sheet,然后将各sheet中的内容一并写入到最终表格中,目前答案中暂时没有看到解决这个问题,如果大家能解决这个问题,是极好的。各位同学可以参考老师的第二种方法,第二种方式中,考虑了多个sheet的问题,各位也可以对程序进行优化。

    用Python导出工程文件两个子页里的数据成为两个exc...

    思路

    利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。

    完整代码

    # -*- coding: utf-8 -*-#将多个Excel文件合并成一个import xlrdimport xlsxwriter#打开一个excel文件def open_xls(file):

    fh=xlrd.open_workbook(file)    return fh#获取excel中所有的sheet表def getsheet(fh):

    return fh.sheets()#获取sheet表的行数def getnrows(fh,sheet):

    table=fh.sheets()[sheet]    return table.nrows#读取文件内容并返回行内容def getFilect(file,shnum):

    fh=open_xls(file)

    table=fh.sheets()[shnum]

    num=table.nrows    for row in range(num):

    rdata=table.row_values(row)

    datavalue.append(rdata)    return datavalue#获取sheet表的个数def getshnum(fh):

    x=0

    sh=getsheet(fh)    for sheet in sh:

    x =1

    return xif __name__=='__main__':    #定义要合并的excel文件列表

    allxls=['F:/test/excel1.xlsx','F:/test/excel2.xlsx']    #存储所有读取的结果

    datavalue=[]    for fl in allxls:

    fh=open_xls(fl)

    x=getshnum(fh)        for shnum in range(x):

    print("正在读取文件:" str(fl) "的第" str(shnum) "个sheet表的内容...")

    rvalue=getFilect(fl,shnum)    #定义最终合并后生成的新文件

    endfile='F:/test/excel3.xlsx'

    wb1=xlsxwriter.Workbook(endfile)    #创建一个sheet工作对象

    ws=wb1.add_worksheet()    for a in range(len(rvalue)):        for b in range(len(rvalue[a])):

    c=rvalue[a][b]

    ws.write(a,b,c)

    wb1.close()

    print("文件合并完成")1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162

    源文件excel1:

    源文件excel2:

    运行结果:

    合并后的excel3:

    展开全文
  • 主要为大家详细介绍了python如何将两txt文件内容合并,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 今天小编就为大家分享一篇python读取txt文件并取其某一列数据的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了解决python pandas读取excel中多个不同sheet表格存在的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python批量读取csv文件并合并文件

    万次阅读 多人点赞 2018-11-15 10:09:57
    import pandas as pd import os # 获取当前路径 cwd = os.getcwd() ...## 待读取批量csv的文件夹名称 Folder_Path = 'data_Q1_2018' ## 待保存的合并后的csv的文件夹名称 SaveFile_Path = 'data_Q1_2018_mer...
    import pandas as pd
    import os
    
    # 获取当前路径
    cwd = os.getcwd()
    
    # 要拼接的文件夹及其完整路径,注不要包含中文
    ## 待读取批量csv的文件夹 
    read_path =  'data_Q1_2018' 
    ## 待保存的合并后的csv的文件夹           
    save_path =  'data_Q1_2018_merge'  
    ## 待保存的合并后的csv       
    save_name = 'Modified.csv'   
    
    # 修改当前工作目录
    os.chdir(read_path)
    
    # 将该文件夹下的所有文件名存入列表
    csv_name_list = os.listdir()
    
    # 读取第一个CSV文件并包含表头,用于后续的csv文件拼接
    df = pd.read_csv( csv_name_list[0]) 
    
    # 读取第一个CSV文件并保存
    df.to_csv( cwd + '\\' + save_path + '\\' + save_name , encoding="utf_8",index=False)
    
    # 循环遍历列表中各个CSV文件名,并完成文件拼接
    for i in range(1,18):
        df = pd.read_csv( csv_name_list[i] )
        df.to_csv(cwd + '\\' + save_path + '\\' + save_name ,encoding="utf_8",index=False, header=False, mode='a+')
    
    展开全文
  • 实现批量txt的读取合并到一txt中进行输出,主要用于tcga数据的预处理

    本程序功能

    将tcga数据的批量txt文件合并成一个txt。

    如下:

    • 原始的第一个txt(代表一个病人)的数据内容

     

    • 合并之后的txt数据,基因名不变,只是把病人的表达量收集到一起

     

     

    操作详细步骤

    本人测试通过的运行环境:Python 2.7  Windows 7 64bit  cmd命令运行器

    使用步骤:

            1.将要处理的数据txt文件放入到11这个文件夹下面(默认的root = 'C:\\tcga\\datapro\\11'),或者将单引号' '中的路径改成自己txt所在的文件夹的路径(结尾没有\\也行

     

            2.放入的txt文件建议不要超过100个,因为个数越多,读入时消耗电脑内存就越大,容易卡机,测试时100个可以正常运行

            3.默认生成的txt路径为F:/data1.txt,自己也可以修改这个路径和文件名

     

            4.点Windows键,在搜索栏输入 cmd 按回车键,cmd将被打开

            4.将tcga_txt.py文件复制到安装的Python所在的文件夹下,我的是C:\Python27(默认安装就是这个路径),能看到python.exe

     

            5.在cmd中输入cd C:\Python27(注意有空格)按回车会进入到该目录,然后输入python.exe tcga_txt.py  再按回车,就开始执行程序了,可以看到写入到输出文件的基因行数

     

            4.处理完第一批txt后,记得将生成的data1.txt改名或者的剪切到别的地方,防止第二批txt运行时生成的data1.txt将其覆盖掉

    源码

      tcga_txt.py

    # -*- coding:utf-8 -*-
    """
    Author:Logen
    Version=1.0
    Email:iin729@163.com
    测试的运行环境:Python 2.7  Windows 7 64bit 
    使用说明:
            1.将要处理的数据txt文件放入到11这个文件夹下面(默认的root = 'C:\\tcga\\datapro\\11'),或者将''中的路径改成自己txt所在的文件夹的路径也行
            2.放入的txt文件建议不要超过100个,因为个数越多,读入时消耗电脑内存就越大,容易卡机,测试时100个可以正常运行
            3.默认生成的txt路径为F:/data1.txt,自己也可以修改这个路径和文件名
            4.处理完第一批txt后,记得将生成的data1.txt改名或者的剪切到别的地方,防止第二批txt运行时生成的data1.txt将其覆盖掉
    """
    #当编写的Python文件即当前代码及注释中含有中文或者非英文字符时,需要声明编码格式为utf-8
    import os   #读取txt文件所需要的包
    import linecache #读取指定行函数linecache.getline(file_ob, line_num)所在的包
    
    root = 'C:\\tcga\\datapro\\11'#读取的批量txt所在的文件夹的路径
    file_names = os.listdir(root) #读取11文件夹下所有的(520个)txt的文件名
    file_ob_list = []   #定义一个列表,用来存放刚才读取的520个txt文件名
    for file_name in file_names:  #循环地给这520个文件名加上它前面的路径,以得到它的具体路径
        fileob = root + '\\' + file_name #文件夹路径加上\\ 再加上具体要读的的txt的文件名就定位到了这个txt
        file_ob_list.append(fileob) #将路径追加到列表中存储  ['C:\\tcga\\datapro\\11\\1.txt','C:\\tcga\\datapro\\11\\2.txt',。。。。]
    
    print file_ob_list  #打印这个列表的内容到显示屏,不想显示的话可以去掉这句
    
    ldata=[]
    data = []
        #file_ob_list是所有文件(比如10个txt)对象组成的列表,for用来循环读取每一个文件,读取一个文件的方式是一行行读入,
        # 每次循环一次for就读取所有文件的某一行,因为这一行的第一列都是基因名称,都是一样的
    line_num = 1  #从txt的第一行开始读入
    total_line = len(open(file_ob_list[0]).readlines()) #计算一个txt中有多少行
    while line_num <= total_line:        #只有读完的行数小于等于总行数时才再读下一行,否则结束读取
        for file_ob in file_ob_list:    #按顺序循环读取所有文件
                line = linecache.getline(file_ob, line_num)#读取这个文件的第line_num行
                line = line.strip() #去掉这一行最后一个字符/n 即换行符
                if line is None or len(line) ==0 :
                    break
                fields = line.split('\t')  #将这一行划分为两列,存放到列表中,fields是这样的: ['ENSG00000242268.2','0.0']
                prob = fields[1]           # fields[0]是'ENSG00000242268.2'   fields[1]是'0.0'
    
                #这个if部分只是将表达量的10位小数点压缩到4位,其实可以去掉这个处理
                if fields[1] != 'NA':      #基因表达量不是NA也就是为数字时,才对它进行小数点的减少处理
                    prob = float(fields[1]) #将字符形式的数字如'0.0'强制转化为浮点型(带小数点的数字)数字0.0
                    prob = '%.4f' % prob   #只保留小数点后面的4位小数
    
                if file_ob == file_ob_list[0] :  #如果读的是第一个txt文件,则将读进去的第一列基因名和第二列表达量
                    data = [fields[0], prob]     # 都加入到列表中  data=  ['ENSG00000242268.2','0.0']
                else :                          # 如果读进去的不是第一个文件,则跳到else执行,第一列不要,
                    data.append(prob)           #只将第二列表达量追加到之前的二维数组后面,假如这时读的是第二个文件的第一行
                                                # 此时fields为['ENSG00000242268.2','0.10'],则data=['ENSG00000242268.2','0.0','0.10']
    
        line_num = line_num + 1     #行数加1,好接着读取每一个文件的第二行
        ldata.append(data)        #将存放了所有txt的第一行数据的data,放到一个新的列表中保存,这时ldata就是一个二维列表,ldata=[['ENSG00000242268.2','0.0','0.10'],[...],...]
                                #用来存放所有的(60482行,就是所有的基因名)行数
        data=[]                #清空data用来存放所有txt的下一行
    
    f = open("F:/data1.txt", "w+")  #创建存放数据的文件
    for i,p in enumerate(ldata):    #将数据写入文件,i是enumerate()函数返回的ldata的某个元素p(就是一行数据,如['ENSG00000242268.2','0.0','0.10']从第一个开始)开始的序号(0,1,2等)
        for j,q in enumerate(p):   #读取p(如['ENSG00000242268.2','0.0','0.10'])中的每一个元素
            f.write(q + "\t" )    #将这个元素写到txt中,每写一个加入一个“\t”(它代表excel中的一根竖线)
        print i                 #显示一下打印到了第多少行
        f.write( "\n")         #每写完一行,就写入一个换行符"\n",好使的接下来的数据写入到第二行
    
    f.close()  #操作完一个文件后应该将它关闭
     

     

     

     

     
    展开全文
  • 主要思路是:遍历文件夹下面的每一个文件,一个个将它们写入到目标文件中 直接上代码 import os meragefiledir = os.getcwd() + '\\en\\labeled' # 文件路径,getcwd() 表示当前工作路径 docList = os.listdir...
  • /usr/bin/python# -*- coding: UTF-8 -*-import osimport globimport sysimport reimport datetime# 设置编码reload(sys)sys.setdefaultencoding('utf8')filePath="/home/rfdev/cbh"#proj1 = "*appStat.log*"# 默认...
  • python合并多个txt文件成为一个文件

    千次阅读 2021-01-12 01:55:51
    232016年12月28日 星期三 --出埃及记 Exodus 21:23 But if there is serious injury, you are to take life for life,若有 ...python处理中文&lpar;待补充&rpar;字符串在Python内部的表示是un...
  • 展开全部思路2113利用python xlrd包读取excle文件,然后将文件内5261容存入...完整代码# -*- coding: utf-8 -*-#将多个Excel文件合并成一个import xlrdimport xlsxwriter#打开一个excel文件def open_xls(file):fh=xl...
  • execl表格的基本格式是这样的 下面我们进行数据清洗,提取里面的信息,讲多个表格的内容合并为一个表格 import fileinput import os import re import numpy as np import openpyxl import pandas as pd from ...
  • def get_data(path): df_list = [] for file in tqdm(os.listdir(path)):##...'./data/hy_round1_testA_20200102' test_df = get_data(TEST_PATH) test_df.to_csv(path_or_buf="test.csv",index=False)#保存为CSV文件
  • python中有将两列数据合并为一列数据的函数么假设数据在文件 test.txt中,程序(测试,大这么意思)lines=open(r'test.txt').readlines()text=[]for line in lines:word=line.split()thirdword=word[2].strip()text....
  • python 读取合并单元格

    2020-11-28 12:10:13
    广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越返的越,最高返5000元!使用xlrd自带属性:merged_cells # 获取表格中所有合并单元格位置,以列表形式返回 (起始行,结束行,...
  • python读取多个文件拼凑数据

    千次阅读 2018-11-26 23:18:49
    python读取11.txt文件的每一行,根据 from 进行拆分,将拆分的数据分别存到数组。读取12.txt文件的每一行,将其存入数组。 因为这三数组长度是一致的,对任一数组进行遍历,将其拼接,并存到一个文件中。...
  • pieces=[] columns=['name','sex','births'] for year in range(1880,2011): path=('C:\\Users\\ecaoyng\\Desktop\\work space\\Python\\py_for_analysis\\pydata-book-master\\ch02\\names\\yob%d.txt' % year)
  • 运营人员需要历年的订单数据,这就需要把多个文件夹下面的excel文件合并到一个sheet中,之前的解决的办法是用VBA把多个excel文件合并成一个表的多个sheet,再把多个sheet合并成一个sheet这种办法对数据量不多的可以...
  • 日常工作中,每月都会...据业务MM说,分那么多文件是为了方便对账,所以不能合放在一起。作为一小菜鸟,拿到这数据,我先想到的做法是:(1)新建一excel文件A;(2)将这三、四十个文件数据分别复制到A中。...
  • Python 提供了 fileinput 模块,通过该模块中的 input() 函数,我们能同时打开指定的多个文件,还可以逐个读取这些文件中的内容。fileinput 模块中 input() 该函数的语法格式如下:fileinput.input(files="filename...
  • 运营人员需要历年的订单数据,这就需要把多个文件夹下面的excel文件合并到一个sheet中,之前的解决的办法是用VBA把多个excel文件合并成一个表的多个sheet,再把多个sheet合并成一个sheet这种办法对数据量不多的可以...
  • frompylabimport*importnetCDF4asncfromnetCDF4import*importmatplotlib.pyplotaspltfrommpl_toolkits.basemapimportBasemapimportnumpyasnpf=nc.MFDataset('d:/data/ecmwf/t2m.????.nc')# as '?...
  • python如何读取多个excel合并到一个excel中思路利python xlrd包读取excle,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。完码# -*- coding: utf-8 -*-#将多个Excel文件合并成一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,362
精华内容 20,144
关键字:

python读取多个文件合并

python 订阅