python设计一个数据去重的小程序_用python合并excel表格数据库-需求:将excel表中的数据通过PYTHON脚本编写,每日......

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

可以采用一些操作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处理excel合并表格

工作中经常用到Excel,很多事情都重复处理,比如每天的日报,每周的周报,各种数据表,这种固定的表其实都是重复性的劳动。最近这段时间一直在学python,但是断断续续的,眼高手低,看别人的代码看的很懂,但是自己就是写不出来,决定自己写个小程序练练手,解决下身边的实际问题,提高工作效率。

这个小脚本主要是把多个excel文件合并到一个文e5a48de588b6e799bee5baa631333363393666件中。网上搜索了下文章,有不少excel的python库,最后选择了适合python3的openpyxl库,这个库安装很简单,

pip install openpyxl

开发的环境是:mac/win python3.5 pycharm

废话不多说,把代码贴出来,请大家多指点下,我觉着代码还可以更简洁下,如果大家有好的优化方案麻烦留言指导下:

#coding=gbkimport openpyxlexcel_data=['qihu.xlsx','baidu.xlsx']# new=openpyxl.load_workbook('all.xlsx')for excel_name in excel_data:

wb= openpyxl.load_workbook(excel_name,data_only=True)

sheet_name=wb.get_sheet_names()

# print(sheet_name)

for work in sheet_name:

nb = openpyxl.load_workbook('all.xlsx',data_only=True)

newsheet_name = nb.get_sheet_names()

if work in newsheet_name :

name = nb.get_sheet_by_name(work)

sheet = wb.get_sheet_by_name(work)

for i in range(1,sheet.max_row 1):

for j in range(1,sheet.max_column 1):

# 获取整个sheet数据

data=sheet.cell(row=i,column=j).value

name.cell(column=j,row=i).value=data

else:

newsheet = nb.create_sheet(title=work)

name = nb.get_sheet_by_name(work)

sheet = wb.get_sheet_by_name(work)

for i in range(1,sheet.max_row 1):

for j in range(1,sheet.max_column 1):

# 获取整个sheet数据

data=sheet.cell(row=i,column=j).value

name.cell(column=j,row=i).value=data

print(name)

nb.save('all.xlsx')

# print(newsheet_name)

使用python将excel表中数据导入sql server数据库

工作中经常用到Excel,很多事情都重复处理,比如每天的日报,每周的周报,各种数据表,这种固定的表其实都是重复性的劳动。最近这段时间一直在学python,但是断断续续的,眼高手低,看别人的代码看的很懂,但是自己就是写不出来,决定自己写个小程序练练手,解决下身边的实际问题,提高工作效率。

这个小脚本主要是把多个excel文件合并到一个文e5a48de588b6e799bee5baa631333363393666件中。网上搜索了下文章,有不少excel的python库,最后选择了适合python3的openpyxl库,这个库安装很简单,

pip install openpyxl

开发的环境是:mac/win python3.5 pycharm

废话不多说,把代码贴出来,请大家多指点下,我觉着代码还可以更简洁下,如果大家有好的优化方案麻烦留言指导下:

#coding=gbkimport openpyxlexcel_data=['qihu.xlsx','baidu.xlsx']# new=openpyxl.load_workbook('all.xlsx')for excel_name in excel_data:

wb= openpyxl.load_workbook(excel_name,data_only=True)

sheet_name=wb.get_sheet_names()

# print(sheet_name)

for work in sheet_name:

nb = openpyxl.load_workbook('all.xlsx',data_only=True)

newsheet_name = nb.get_sheet_names()

if work in newsheet_name :

name = nb.get_sheet_by_name(work)

sheet = wb.get_sheet_by_name(work)

for i in range(1,sheet.max_row 1):

for j in range(1,sheet.max_column 1):

# 获取整个sheet数据

data=sheet.cell(row=i,column=j).value

name.cell(column=j,row=i).value=data

else:

newsheet = nb.create_sheet(title=work)

name = nb.get_sheet_by_name(work)

sheet = wb.get_sheet_by_name(work)

for i in range(1,sheet.max_row 1):

for j in range(1,sheet.max_column 1):

# 获取整个sheet数据

data=sheet.cell(row=i,column=j).value

name.cell(column=j,row=i).value=data

print(name)

nb.save('all.xlsx')

# print(newsheet_name)

python实现excel合并

工作中经常用到Excel,很多事情都重复处理,比如每天的日报,每周的周报,各种数据表,这种固定的表其实都是重复性的劳动。最近这段时间一直在学python,但是断断续续的,眼高手低,看别人的代码看的很懂,但是自己就是写不出来,决定自己写个小程序练练手,解决下身边的实际问题,提高工作效率。

这个小脚本主要是把多个excel文件合并到一个文e5a48de588b6e799bee5baa631333363393666件中。网上搜索了下文章,有不少excel的python库,最后选择了适合python3的openpyxl库,这个库安装很简单,

pip install openpyxl

开发的环境是:mac/win python3.5 pycharm

废话不多说,把代码贴出来,请大家多指点下,我觉着代码还可以更简洁下,如果大家有好的优化方案麻烦留言指导下:

#coding=gbkimport openpyxlexcel_data=['qihu.xlsx','baidu.xlsx']# new=openpyxl.load_workbook('all.xlsx')for excel_name in excel_data:

wb= openpyxl.load_workbook(excel_name,data_only=True)

sheet_name=wb.get_sheet_names()

# print(sheet_name)

for work in sheet_name:

nb = openpyxl.load_workbook('all.xlsx',data_only=True)

newsheet_name = nb.get_sheet_names()

if work in newsheet_name :

name = nb.get_sheet_by_name(work)

sheet = wb.get_sheet_by_name(work)

for i in range(1,sheet.max_row 1):

for j in range(1,sheet.max_column 1):

# 获取整个sheet数据

data=sheet.cell(row=i,column=j).value

name.cell(column=j,row=i).value=data

else:

newsheet = nb.create_sheet(title=work)

name = nb.get_sheet_by_name(work)

sheet = wb.get_sheet_by_name(work)

for i in range(1,sheet.max_row 1):

for j in range(1,sheet.max_column 1):

# 获取整个sheet数据

data=sheet.cell(row=i,column=j).value

name.cell(column=j,row=i).value=data

print(name)

nb.save('all.xlsx')

# print(newsheet_name)

需求:将excel表中的数据通过PYTHON脚本编写,每日...

Created on Mon Mar 16 11:23:05 2015

@author: admin

"""

# 分批次运行,先得到books, 再运行,利用print 来debugimport pandas as pd

import numpy as np

import matplotlib as pl

import os

count=0

#ori_path='xx'

ori_path='C:\Python27\data\sample'

def get_xls_books(ori_path): # get target filename and dir of a pathtemp = list(os.walk(ori_path)) #tmp is list ,tmp[0]该目录文件路径和文件名, tmp[1]:子目录文件路径,文件名称book_path=[]

book_name=[]

root=temp[0][0]

for i in temp[0][2]:

if os.path.splitext(i)[1] == '.xlsx': #splite filenameobj_path=os.path.join(root,i)

book_path.append(obj_path)

book_name.append(os.path.splitext(i)[0])

return zip(book_path, book_name)

def get_xls_sheets(obj_path): #get all sheets of a object pathxls=pd.ExcelFile(obj_path)

sheet_names=xls.sheet_names

sheets=[xls.parse(i) for i in range(0,len(sheet_names)) ] # use parse can get dataframe saved into a listreturn zip(sheet_names,sheets)

books=get_xls_books(ori_path) # book paths list#xls=pd.ExcelFile(books[0])

#print xls.parse(0).columns

for book in books: # this loop get a bookbookname=book[1]

bookpath=book[0]

sheets=get_xls_sheets(bookpath) # get all sheets and names from book pathfor i in range(len(sheets)): #operate each sheet, is range(len) not lensheetname=sheets[i][0]

name=bookname '-' sheetname '.' 'csv'

pd_sheet=sheets[i][1] # dataFrame

cols=pd_sheet.columns

pdf=pd_sheet[[cols[17],cols[18],cols[4],cols[6],cols[8],cols[10],cols[19],cols[16]]] # use emunerate functionpdf.columns=['area','patch','wangdian','operator','custid','servid','servtype','is_identify'] # renamepdf1=pdf[pdf['is_identify']=='是'] #filterpdf2=pdf1.drop('is_identify',1)

pdf2.to_csv(os.path.join(ori_path,name), header=None, index=None)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值