|
本帖最后由 autumnalRain 于 2024-4-3 10:14 编辑
中行数据流水清洗,每四行作为一条数据,且标题独占两行,需要将清洗成:全表只有一行标题,且每行一条数据- # -*- coding: UTF-8 -*-
- #导入pandas
- import pandas as pd
- #指定数据源路径
- path='DataSource.xlsx'
- #读入数据源工作表
- df = pd.read_excel(path,sheet_name='CTIS系统交易流水',header=None)
- # 删除包含NaN空行
- df.dropna(axis=0,how='all',inplace=True)
- #新建空白列表
- new_rows = []
- #将第1、3行纵向合起来作为分析结果的标题
- Title = pd.concat([df.iloc[0, 0:14], df.iloc[2, 0:14]], axis=0)
- 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
- #将转换结果写入到原工作簿的新建工作表RESULT中
- with pd.ExcelWriter(path,engine='openpyxl',mode='a') as writer:
- new_df.to_excel(writer, sheet_name='RESULT', index=False, header=False)
复制代码
|
|