中行数据清洗

拿到中行流水时,每四行为一条记录,举例第1、3行为表头,第2、4行为数据,类似工资条,但工资条只有两行。为方便进行数据分析,则需要仅保留一行表头,然后将两行数据拼接成一行。

# # -*- coding: UTF-8 -*-

from tkinter import *
from tkinter import filedialog
import pandas as pd
from tkinter import messagebox

messagebox.askquestion('提示', '要执行此操作吗')
path = filedialog.askopenfilename()  # 打开文件选择对话框

df = pd.read_excel(path,sheet_name='CTIS系统交易流水',header=None)
df.dropna(axis=0,how='all',inplace=True)#   删除包含NaN空行
new_rows = []
Title = pd.concat([df.iloc[0, 0:14], df.iloc[2, 0:14]], axis=0)#   将第1、3行纵向合起来作为标题
new_rows.append(Title)
for i in range(1,len(df),4):
    data_row=pd.concat([df.iloc[i, 0:14], df.iloc[i+2, 0:14]], axis=0)
    new_rows.append(data_row)
new_df = pd.concat(new_rows, axis=1).T

new_path = filedialog. asksaveasfilename(filetypes=(('Excel files', ('*.xl*', '*.xlsx', '*.xlsm', '*.xlsb', '.xlam', '*.xltx', '*.xltm', '*.xls', '*.xla', '*.xlt', '*.xlm', '*.xlw')),
                                                   ('Text Files', ('*.txt', '*.csv')),
                                                   ('all files', '*.*')))
new_df.to_excel(new_path, sheet_name='Result',engine='openpyxl',index=False, header=False)
messagebox.showinfo('提示:','处理完毕')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值