用python做一些excel的事情,实现数据自动化

用了一段时间的python ,发觉python这小伙确实是做自动化的一把好手,鉴于python在自动化方面的良好的能力,python在自动化测试,自动化运维,爬虫等方面都有着良好的表现。

我们在日常工作做需要对一下交易数据的统计,利润的计算,对于这些每天的大量重复工作,何不用python写一下代码,让这些工作变成自动化,提高准学性的同时,也解放了我们的工作时间,使得我们可以把更加多的时间花在解决问题上面。

下面的以python模拟excel的一下,日常操作,提高数据处理的效率,达到自动化的效果。

在我们处理数据之前,我们首先需要在我们的日常后台系统上面进行数据的下载,我们何不用python 把这一步也做自动化呢,在python里面有一个叫selenium库在浏览器的自动化操作方面有着这良好的表现,可以帮助我们把日常的交易数据,利润数据自动化的下载,做到全自动化,下一篇博客里面我们会进行介绍。

第一步

#首先我们需要需要3个库,pandas库,numpy库,openpyxl库。
#pandas在数据整理方面强大的能力,特别是在大数据的整理方面,
#小数据我们当然可以通过excel来实现,numpy在数据运算方面表现优异,
#openpyxl库是我们在导出到xlsx的文件时所需要用到的不然to_excel的时候可能会报错。
import pandas as pd 
import numpy as np 
import openpyxl  

第二步

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#下载了日常交易利润数据表20180404104607.xls,和代理商之前的利润汇总表2,
#公司会把代理商的分润累积到一定程度的时候发放给代理商,这里我们取达到100元进行打开,
#我们首先用read_excel来读取数据表格。
df=pd.read_excel('汇总表.xlsx',sheet_name='Sheet1') 
df_2018=pd.read_excel('20180404104607.xls')  

第三步

# 筛选利润汇总表,得到我们需要的2列,代理商名称和总额。
df_new=df[['代理商名称','总额']]  

第四步

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 筛选交易数据表,我们拿到扣完0.7税的本级利润,并取小数点后面的两位数。
df_2018_代理商名称=df_2018['代理商名称'] 
df_2018_本级利润=round(df_2018['本级利润(元)']*0.93,2) 
df111=pd.concat([df_2018_代理商名称,df_2018_本级利润],axis=1) 
# print(df111)  

第五步

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 合并交易数据,这里面的merge的功能有和excel里面的vlookup,
# sql里面的join功能是一样的吗,同时把我今日的交易利润和历史利润相加。并重名名
df_result=df111.merge(df_new,on='代理商名称') 
# print(df_result) 
dd=df_result['本级利润(元)']+df_result['总额'] 

dd.columns=['总额'] 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#我们还可以是用apply的方式进行求和,但是首先需要drop去掉字符串,不然sum的时候就会报错
df_result=df_result.drop(['代理商名称'],axis=1)

del df_result['代理商名称']

df_result['求和']=df_result.apply(lambda x: x.sum(),axis=1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第六步

#筛选交易金额大于100的列 
df_result_2=df_result['代理商名称']    
jieguo=pd.concat([df_result_2,dd],axis=1) jieguo=jieguo[jieguo['总额']>100]

#区间取值
jj=jieguo.loc[(jieguo['利润']>70)&(jieguo['利润']<100)]
#重行命名列
jieguo.columns=['代理商名称','利润']
jieguo.rename  (columns = {'利润': '付款金额'},inplace=True)
print(jieguo)  
#把最后的结果导出到我们所要的表格的当中。 
jieguo.to_excel('result.xlsx') 

如果有更好的建议方法不足,请告之我,让我们一起进步吧。谢谢

发布了35 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qdPython/article/details/105277258