Python练习-合并excel表格

前言: 这个栗子本来打算是要合并自己下载的数据集,但是尝试了好久!!才发现是.xls文件损坏了…我忍…在练习过程遇到不少bug,若是小伙伴有疑问可以提一提,说不定我遇到过,恍恍惚惚…

代码:

'''
#excel_combine.py
操作:实例化Excel_Combine_tool(),参数有2个:文件夹位置,表单名字
再save()方法
说明:代码中print()方法多为调试作用
最后文件在该源文件目录下
'
''
import xlrd
import xlwt
from numpy import *
import os
class Excel_combine_tool:
file_array = []#存放多个文件名字
file_location = ''#多个文件所在的文件夹地址
n_file = 0#文件个数
sheet_name = ''#表单名字
def __init__(self,file_location,sheet_name):
self.file_location = file_location
self.sheet_name = sheet_name
#获得所有excel表格文件列表
def get_all_excel(self):
self.file_array = [fname for fname in os.listdir(self.file_location)
if os.path.isfile(os.path.join(self.file_location,fname)) and fname.endswith('.xlsx')]
print('当前文件夹有%d个.xlsx文件'%len(self.file_array))
return self.file_array
#将所有文件读到列表
def read_in(self):
self.n_file = len(self.get_all_excel())
list = []
for i in range(0,self.n_file):
complete_fname = self.file_location + '\\' + self.file_array[i]
#print(complete_fname)
table = xlrd.open_workbook(complete_fname)
try:
sheet = table.sheet_by_name(self.sheet_name)
except:
print('没有找到Sheet1,请更换表格名字')
nrows = sheet.nrows
ncols = sheet.ncols
#忽略表格第一行title
for j in range(1,nrows):
row_list = []
for k in range(0,ncols):
row_list.append(sheet.cell(j,k).value)#读取单元格数据
list.append(row_list)
#print(list)
return list
#最终保存
def save(self):
my_list = self.read_in()
file = xlwt.Workbook()
table = file.add_sheet('Sheet1')
for i in range(len(my_list)):
for j in range(len(my_list[i])):
table.write(i,j,my_list[i][j])
print('已经合并,请检查')
file.save('new.xls')

后话: 我将在另一篇博客提供python操作文件,文件夹的知识。学习输入输出会很有用的。

———关注我的公众号,一起学数据挖掘————
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python可以使用pandas库来合并多个Excel表格。具体步骤如下: 1.导入pandas库 ``` import pandas as pd ``` 2.读取Excel表格 ``` df1 = pd.read_excel('表格1.xlsx') df2 = pd.read_excel('表格2.xlsx') df3 = pd.read_excel('表格3.xlsx') ``` 3.合并表格 ``` df = pd.concat([df1, df2, df3], ignore_index=True) ``` 其中,pd.concat()函数可以将多个表格按行合并,ignore_index=True参数可以重新设置行索引。 4.保存合并后的表格 ``` df.to_excel('合并后的表格.xlsx', index=False) ``` 其中,to_excel()函数可以将DataFrame对象保存为Excel表格,index=False参数可以不保存行索引。 以上就是使用Python合并多个Excel表格的步骤。 ### 回答2: 在实际工作中,经常会遇到需要把多个Excel表格合并成一个的情况,这时候使用Python的pandas库可以轻松解决这个问题。 首先,需要导入pandas库并读取需要合并Excel表格: import pandas as pd df1 = pd.read_excel('file1.xlsx') df2 = pd.read_excel('file2.xlsx') df3 = pd.read_excel('file3.xlsx') 接着,我们可以使用pandas的concat()函数将多个数据框连接起来: df = pd.concat([df1, df2, df3]) 其中,concat()函数的第一个参数是要连接的多个数据框,可以将它们以列表的形式传入。第二个参数axis=0表示合并的方向是纵向合并(即将多个数据框按行合并),axis=1表示合并的方向是横向合并(即将多个数据框按列合并)。 最后,我们再将合并后的数据框保存为一个新的Excel文件: df.to_excel('merged.xlsx', index=False) to_excel()函数的第一个参数是要保存的文件名,第二个参数index=False表示不保存行索引。 综上所述,使用Python的pandas库可以轻松实现多个Excel表格合并,大幅提高数据处理效率。 ### 回答3: Python是一种高级编程语言,它具有易于学习、代码简洁、功能强大的特点。Python常用于数据科学、人工智能等领域,其中涉及到多个Excel表格合并是很普遍的需求。下面将介绍如何使用Python将多个Excel表格合并。 首先,我们需要安装Python的openpyxl、pandas和xlrd库。这些库可用于读取、修改和生成Excel表格。然后,我们需要创建一个Python脚本,该脚本将合并多个Excel表格到一个新的Excel表格中。 以下是Python代码示例: ```python import pandas as pd import os #获取文件名 def file_name(file_dir): L=[] for root, dirs, files in os.walk(file_dir): for file in files: if os.path.splitext(file)[1] == '.xlsx': L.append(os.path.join(root, file)) return L #读取Excel表格 def read_excel(file_name): df=pd.read_excel(file_name) return df #将多个表格合并到一个表 def merge_excel(file_dir): df_total=pd.DataFrame() for file in file_name(file_dir): df=read_excel(file) df_total=pd.concat([df_total,df],axis=0,ignore_index=True) return df_total #将合并好的表格保存 if __name__ == '__main__': file_dir="文件夹路径" df_total=merge_excel(file_dir) df_total.to_excel("合并.xlsx",index=False) ``` 以上是一个基础的Excel表格合并程序,可以通过这个程序,将一个文件夹中所有的xlsx表格合并为一个新的表格。程序中用了3个函数,分别是file_name、read_excel和merge_excel。 file_name函数用于获取文件夹中所有的excel文件名, read_excel用于读取单个excel表格, merge_excel函数用于将单个表格逐一合并到一个新的表格中。最后,我们只需要使用 pandas 库将合并后的表格保存至新表格即可。 总之,Python-excel多个表格合并非常便捷,只需要安装必须的依赖库,然后编写相应得代码即可。而且Python代码简单易懂,对于有编程基础的人是非常友好的。做Excel表格合并,不妨一试Python

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值