报账处理 Python 程序1——加密表的去重以及格式化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import pandas as pd

# 手动输入文件地址
file_path = input("请输入文件地址:")

# 读取 Excel 文件,去除路径两边的''
df = pd.read_excel(file_path.strip("'"))
# df = pd.read_excel(file_path)

# 去除银行卡号中的空格
df['银行卡号'] = df['银行卡号'].fillna('').astype(str).str.strip()

# 输出金额的总和
print('分类前行数', len(df))
print('分类前金额总和', df['金额'].sum())
print()

# 修正学号第一位丢失问题
df['学号'] = df['学号'].astype(str).apply(lambda x: x.zfill(7))

# 对学号、姓名、银行卡号和年级进行分组,并对金额进行求和
df = df.groupby(['学号', '姓名', '银行卡号'], as_index=False)['金额'].sum()

# 输出分类后的行数和金额总数
print('分类后', len(df))
print('总金额', df['金额'].sum())

# 在 DataFrame 中插入空列
for i in range(5):
df.insert(2, f'{i+1}', '')

# 手动输入保存文件的地址
output_file = input("请输入保存文件的地址:")

# 将结果保存到 Excel 文件中
with pd.ExcelWriter(output_file) as writer:
df.to_excel(writer, sheet_name='Sheet1', index=False)
writer.save()

print('输出结果已保存到文件中!')

by Chatgpt