提取表格中的指定数据存入另一张表格并打包为可执行文件(exe)

1、安装必须模块

pip3 install pandas xlrd xlwt pywin32 pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
注意:安装pandas的时候回自动安装numpy,但是在最后运行可执行文件的时候回报错找不到numpy.common.因此需要做以下处理
pip uninstall numpy
pip install numpy==1.16.2 
安装指定版本可避免这个问题

2、编码

import pandas as pd
import time

"""
程序的功能:抽取源数据(data.xlsx)中的每个团队的20%的数据存放在另一张表中 为了方便,将
文件名和团队名硬编码 20190805-youxiaodao """ family_names = ['高新汉文', '高新华远', '高新易居', '三桥汉文', '三桥华远', '三桥易居'] # 每个团队的名称 save_colums = ['姓名', '联系方式', '业务员', '销售团队', '客户状态', '跟进方式', '是否接通', '是否有效', '备注'] # 要输出的所有数据的列名 def read_file(file_name): data = pd.read_excel(file_name) return data def get_dataframe(data, family_name): data_family_all = data.loc[data['销售团队'] == family_name] data_family_sample = data_family_all.sample(frac=0.2) return data_family_sample def save_data(data): time_now = time.time() file_name = f"data_{time_now}.xls" data.to_excel(file_name, columns=save_colums) def run(): try: print('请等待...') data = read_file("data.xlsx") df_lsit = [] for name in family_names: date_frame = get_dataframe(data, name) df_lsit.append(date_frame) new_df = pd.concat(df_lsit) save_data(new_df) print('恭喜您,数据操作已完成') except Exception as e: with open('error.txt','r+') as f: f.write(e) print('sorry,好像遇到麻烦了') if __name__ == '__main__': run()

用到的函数名

read_excel 读取excel文件
loc 获取指定列指定值的所有行
sample 获取dataframe中随机数量的样本
to_excel 将数据写入到excel表
concat 将列表中的dataframe合并

3、将py文件打包成可执行文件

pywin32 pyinstaller 模块已经在第一步提前装好
在文件目录下执行命令
D:\any_code\hua_excel\getRandData>pyinstaller -F get_rand_to_xls.py

等待完成...

在dist目录下生成了可执行文件(exe)

就可以在任一电脑上运行了,可执行文件中包含了python运行的环境和相应的模块

注意:

windows系统环境(win10,64位)要一样,如果是其他环境,需要在相应的环境上重新打包

因为这次文件名是硬编码的,所以需要将源数据改名为data.xlsx,并和可执行文件放在一起

此脚本只针对固定需求,不是通用的程序

posted @ 2019-08-05 17:56  游小刀  阅读(705)  评论(0编辑  收藏  举报
levels of contents