我是靠谱客的博主 时尚鲜花,最近开发中收集的这篇文章主要介绍python拆分合并表python拆分合并表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

python拆分合并表

最近工作中遇到一个问题,需要创建多个表,每个表以姓名+身份证号命名,表中含多个sheet,分别为不同内容:第一个sheet为这个人名下所有银行卡交易总流水,第二个sheet为以这个人为主体与对手的交易汇总,后面sheet 分别为这个人每张卡与对手的交易汇总。
思路:
1、生成以上表需要的总表:所有人银行卡交易总流水、所有人按人汇总与对手的交易、所有人按卡汇总与对手的交易
2、三个总表均根据交易户名拆分表,每个表均按照户名+身份证号命名,拆分到三个不同的文件夹
3、对三个文件夹中同名文件进行合并
4、对合并后文件中‘按卡汇总与对手的交易’的sheet在原表中根据卡号拆分为不同sheet
5、删除‘按卡汇总与对手的交易’sheet

import pandas as pd
import numpy as np
import xlsxwriter
import os
from openpyxl import load_workbook
#根据交易户名将总表拆分为多个表
def split_book(file,bpath):
"""
file:文件路径+名称
bpath:保存路径
"""
data=pd.read_excel(file,dtype='object')
area_list=list(set(data["交易户名"]))
for i in area_list:
df=data[data["交易户名"]==i]
lis = list(set(df['交易证件号码']))
if len(lis) == 2:
lis.remove(np.nan)
idcard = lis[0]
writer = pd.ExcelWriter(bpath+'/'+i+str(idcard)+'.xlsx')
df.to_excel(writer,sheet_name=i,index=False)
writer.save()
writer.close()
#将三个文件夹下同名文件进行合并
def combin_book(path1,path2,path3,bpath):
"""
path1:第一个文件路径
path2:第二个文件路径
path3:第三个文件路径
bpath:合并后保存路径
"""
files1=os.listdir(path1)
files2=os.listdir(path2)
files3=os.listdir(path3)
for file1 in files1:
for file2 in files2:
for file3 in files3:
if file1==file2==file3:
df1=pd.read_excel(path1+'/'+file1,dtype='object')
df2=pd.read_excel(path2+'/'+file2,dtype='object')
df3=pd.read_excel(path3+'/'+file3,dtype='object')
with pd.ExcelWriter(bpath+'/'+file1) as writer:
df1.to_excel(writer,sheet_name='交易汇总',index=False)
df2.to_excel(writer,sheet_name='按人汇总',index=False)
df3.to_excel(writer,sheet_name='按卡汇总',index=False)
#对工作簿中指定sheet表按照交易卡号拆分并将拆分总表删除(均在原表中保存删除)
def split_sheet(path):
"""
path:操作文件路径
"""
files=os.listdir(path)
for file in files:
data = pd.read_excel(path+'/'+file,sheet_name='按卡汇总',dtype='object')
bankcard_list = list(data['交易卡号'].drop_duplicates())
for i in bankcard_list:
df = data[data['交易卡号']==i]
with pd.ExcelWriter(path+'/'+file, mode='a', engine='openpyxl') as writer:
df.to_excel(writer,sheet_name=i,index=False)
#删除按卡汇总sheet
workbook = load_workbook(path+'/'+file)
workbook.remove(workbook['按卡汇总'])
workbook.save(path+'/'+file)
split_book(r'C:项目分析按卡汇总交易.xlsx',r'C:项目分析按卡汇总交易拆分后')
split_book(r'C:项目分析筛选对手后按人汇总与对手交易情况.xlsx',r'C:项目分析筛选对手后按人汇总与对手交易情况拆分后')
split_book(r'C:项目分析筛选对手后按卡汇总与对手交易.xlsx',r'C:项目分析筛选对手后按卡汇总与对手交易拆分后')
combin_book(r'C:项目分析按卡汇总交易拆分后',r'C:项目分析筛选对手后按人汇总与对手交易情况拆分后',r'C:项目分析筛选对手后按卡汇总与对手交易拆分后',r'C:项目分析合并后')
split_sheet(r'C:项目分析合并后')

最后

以上就是时尚鲜花为你收集整理的python拆分合并表python拆分合并表的全部内容,希望文章能够帮你解决python拆分合并表python拆分合并表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部