单位有较多账户报表,经常要知道哪些账户的金额是多少。
最近python很火,感觉可以搞一下,但是0基础,自己摸索,著文以记之。安装python。安装最新版,可以多活一段时间,什么都选择默认就好。
安装pip。安装这个后,便可安装库。这个要到网上搜索安装过程。
安装pandas。默认安装就好,但是可能会有问题。我这次安装python3.8,安装pip20.1,默认安装pandas。结果运行时候报错,查了好久,发现只支持pandas1.0.0,需要安装低版本pandas。
写自己需要的代码。可以先不管开头和结尾,先把代码主体写出来。
例:
一个8列n行报表,按照账号和本期余额(借贷方)来筛选,表达式怎么写。
data1=data[data['name'].str.contains('17901|28901')&((data['H']>0)|(data['G']>0))]
#这个代码我想了很久,找了很久才从各个大神的文章里找出来,果然兴趣是学习的基础。
其他的就简单了。
以下代码运行环境python3.8 pip 20.1 pandas 1.0.0
import tkinter as tk#如采用打开文件夹、打开文件的方式选取excel,而不是写定
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
Folderpath = filedialog.askdirectory() # 获得选择好的文件夹
Filepath = filedialog.askopenfilename() # 获得选择好的文件
import pandas as pd#导入pandas
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.width', 180) # 设置打印宽度(**重要**)
pd.set_option('display.max_columns', 8)#显示最大列
data = pd.read_excel(Filepath,header=3,usecols=[0,1,6,7])#读入文件的起止和选定列
data.columns = ['name','B','G','H']@#给选定列重命名
data1=data[data['name'].str.contains('17901|28901')&((data['H']>0)|(data['G']>0))]#按条件筛选,可改
print(data1)
data1.to_excel(r'D:\test\list.xls')#存储到指定位置,可改为交互指定
input()#暂停在输出界面,以免运行一闪而过
写下了,以便日后修改。