用Python将所有的Excel表合并在一个Excel表中 并且只保留一个表头 按照Excel1中的银行卡号与Excel2中的银行卡号补全客户名称 将账户金额中带有负号的数值改为正数 将Excel中有出现相同的产品名称 查询卡号 查询账号 交易对方名称 交易对方卡号 账户金额 账户余额 交易时间相同的去重 只保留一个
时间: 2024-02-13 22:02:09 浏览: 141
好的,这是一个比较复杂的问题,需要综合运用 Pandas 和 openpyxl 等 Python 库来实现。
首先,你需要使用 Pandas 读取所有的 Excel 表格,并将它们合并成一个 DataFrame。代码如下:
```python
import pandas as pd
# 读取所有 Excel 表格
excel1 = pd.read_excel('excel1.xlsx')
excel2 = pd.read_excel('excel2.xlsx')
excel3 = pd.read_excel('excel3.xlsx')
# 合并所有表格
df = pd.concat([excel1, excel2, excel3], ignore_index=True)
# 保留一个表头
df = df[df.index != 0].reset_index(drop=True)
```
接下来,你需要将 Excel1 中的银行卡号与 Excel2 中的银行卡号进行匹配,并将客户名称补全。代码如下:
```python
# 将银行卡号转为字符串类型
df['银行卡号'] = df['银行卡号'].astype(str)
# 将 Excel1 和 Excel2 合并
excel12 = pd.concat([excel1[['银行卡号', '客户名称']], excel2[['银行卡号', '客户名称']]])
# 去重并保留最后一条记录
excel12 = excel12.drop_duplicates(subset='银行卡号', keep='last')
# 将 Excel1 和 Excel2 的客户名称合并到 df 中
df = pd.merge(df, excel12, on='银行卡号', how='left')
```
然后,你需要将账户金额中带有负号的数值改为正数。代码如下:
```python
# 将账户金额中带有负号的数值改为正数
df.loc[df['账户金额'] < 0, '账户金额'] = -df['账户金额']
```
接下来,你需要对重复的记录进行去重。代码如下:
```python
# 对重复的记录进行去重,只保留一条
df = df.drop_duplicates(subset=['产品名称', '银行卡号', '账号', '交易对方名称', '交易对方卡号', '账户金额', '账户余额', '交易时间'], keep='first')
```
最后,你需要将处理好的数据保存到 Excel 中。代码如下:
```python
# 将处理好的数据保存到 Excel 中
df.to_excel('merged.xlsx', index=False)
```
这样,你就可以将所有的 Excel 表格合并在一个 Excel 表格中,并且只保留一个表头;按照 Excel1 中的银行卡号与 Excel2 中的银行卡号补全客户名称;将账户金额中带有负号的数值改为正数;将 Excel 中有出现相同的产品名称、查询卡号、查询账号、交易对方名称、交易对方卡号、账户金额、账户余额、交易时间相同的记录去重,只保留一个。
阅读全文