thon财税基础应用5_第1页
thon财税基础应用5_第2页
thon财税基础应用5_第3页
thon财税基础应用5_第4页
thon财税基础应用5_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python在财税中的应用Python在财税中的应用目录项目一项目二项目三项目四Python在财税中的应用概述Python在财务中的应用Python在税务管理中的应用Python在行业数据分析中的应用项目五综合应用Python在财税中的应用综合应用项目五任务一Python在人员结构分析中的应用数据处理、分析一般流程综合应用项目五Python在财税中的应用任务一Python在人员结构分析中的应用读取数据importpandasaspdfrommatplotlibimportpyplotaspltdf=pd.read_excel('人员结构分析与人员变动分析.xlsx')df#显示df中的数据任务要求:分析在职员工的部门分布情况,工具及文化程度。填充NaT值为空值df=df.fillna('')dfPython在财税中的应用筛选在职人员#筛选出在职人员df=df[df['离职日期']=='']df转换”入职日期”类型为日期型df=df.copy()df['入职日期']=pd.to_datetime(df['入职日期'])df综合应用项目五任务一Python在人员结构分析中的应用Python在财税中的应用增加“工龄”列并计算员工入职时间#定义函数def

working_years(a):now=pd.datetime.now()#取得当前日期

returnnow.year-a.year#返回当前年与入职年之差df['工龄']=df['入职日期'].map(working_years)#map函数把'入职日期'列中的数据一个一个传到working_years函数中进行处理。df综合应用项目五任务一Python在人员结构分析中的应用Python在财税中的应用查看公司员工的文化程度df['文化程度'].unique()筛选出各部门入职满2年且文化程度是本科及以上的人员#使用‘&’(并且)和

‘|’(或)时,每个条件要用小括号包含起来df1=df[(df['工龄']>=2)&((df['文化程度']=='本科')|(df['文化程度']=='硕士'))]df1综合应用项目五任务一Python在人员结构分析中的应用Python在财税中的应用查看公司员工的文化程度df['文化程度'].unique()筛选出各部门入职满2年且文化程度是本科及以上的人员#使用‘&’(并且)和

‘|’(或)时,每个条件要用小括号包含起来df1=df[(df['工龄']>=2)&((df['文化程度']=='本科')|(df['文化程度']=='硕士'))]df1综合应用项目五任务一Python在人员结构分析中的应用Python在财税中的应用构建数据透视表,按部门统计人员的数量df2=df1.pivot_table(index='部门',values='姓名',aggfunc='count')df2重命名列名“姓名”为“员工人数”df2=df2.rename(columns={'姓名':'员工人数'})df2综合应用项目五任务一Python在人员结构分析中的应用Python在财税中的应用绘制饼图plt.rcParams['font.family']='Kaiti'

#设置字体为楷体plt.rcParams['axes.unicode_minus']=False

#正常显示负号plt.figure(figsize=(8,8))#设置画布的宽与高,在正方形中可绘出正圆x=df2['员工人数']#设置扇形面积值label=df2.index#定义饼图的标签,即部门名称explode=[0,0,0,0,0,0,0,0.1]#设定各项距离圆心N个半径,销售部会突出0.1#绘制饼图,autopct='%.2f%%'显示保留2位小数的百分比数据plt.pie(x,explode=explode,labels=label,autopct='%.2f%%',shadow=True,textprops={'fontsize':15,'color':'green'})plt.legend(fontsize=15,bbox_to_anchor=(1.4,1.05))#设置显示图例plt.title('各部门工龄2年以上学历本科以上人员分布图',fontsize=18)综合应用项目五任务一Python在人员结构分析中的应用Python在财税中的应用任务二Python在编制科目余额表中的应用任务要求:根据1-31号的记账凭证,编制总账科目上旬、中旬、下旬的借、贷方余额,并保存到excel表。综合应用项目五任务二Python在编制科目余额表中的应用Python在财税中的应用importpandasaspddf=pd.read_excel('记账凭证业务.xlsx')df读取数据综合应用项目五任务二Python在编制科目余额表中的应用df['日期']=df['日期'].fillna(method='ffill')#ffill,以上一行值填充df['年']=df['日期'].str[0:4]#截取日期中的年df['月']=df['日期'].str[5:7]#截取日期中的月df['日']=df['日期'].str[8:10]#截取日期中的日df填充日期NaN为上一行的值,新增“年”“月”“日”列Python在财税中的应用df_1=df.loc[:,['年','月','日','总账','借方金额','贷方金额']]#为了可以进行运算,把日期列转换为整数型。df_1['日']=df['日'].astype('int32')df_1.head()筛选出所需要列综合应用项目五任务二Python在编制科目余额表中的应用df_s=df_1.loc[df_1['日']<=10]#筛选出上旬的数据,赋给df_s#根据上旬的数据编制科目汇总表df_s=pd.pivot_table(df_s,index=['总账'],values=['借方金额','贷方金额'],aggfunc='sum',fill_value=0)df_s.rename(columns={'借方金额':'1-10日借方金额','贷方金额':'1-10日贷方金额'},inplace=True)df_s.reset_index(inplace=True)df_s.head()编制上旬(1-10日)的科目余额表Python在财税中的应用df_1=df.loc[:,['年','月','日','总账','借方金额','贷方金额']]#为了可以进行运算,把日期列转换为整数型。df_1['日']=df['日'].astype('int32')df_1.head()筛选出编制科目余额表所需要列综合应用项目五任务二Python在编制科目余额表中的应用df_s=df_1.loc[df_1['日']<=10]#筛选出上旬的数据,赋给df_s#根据上旬的数据编制科目汇总表df_s=pd.pivot_table(df_s,index=['总账'],values=['借方金额','贷方金额'],aggfunc='sum',fill_value=0)df_s.rename(columns={'借方金额':'1-10日借方金额','贷方金额':'1-10日贷方金额'},inplace=True)df_s.reset_index(inplace=True)df_s.head()编制上旬(1-10日)的科目余额表Python在财税中的应用综合应用项目五任务二Python在编制科目余额表中的应用df_z=df_1[(df_1['日']>=11)&(df_1['日']<=20)]df_z=pd.pivot_table(df_z,index=['总账'],values=['借方金额','贷方金额'],aggfunc='sum',fill_value=0)df_z.rename(columns={'借方金额':'11-20日借方金额','贷方金额':'11-20日贷方金额'},inplace=True)df_z.reset_index(inplace=True)df_z.head()编制中旬(11-20日)的科目余额表df_x=df_1[(df_1['日']>=21)]df_x=pd.pivot_table(df_x,index=['总账'],values=['借方金额','贷方金额'],aggfunc='sum',fill_value=0)df_x.rename(columns={'借方金额':'21-31日借方金额','贷方金额':'21-31日贷方金额'},inplace=True)df_x.reset_index(inplace=True)df_x.head()编制下旬(大于21日)的科目余额表Python在财税中的应用综合应用项目五任务二Python在编制科目余额表中的应用df_kmyeb=pd.merge(df_s,df_z,how='outer')df_kmyeb=pd.merge(df_kmyeb,df_x,how='outer')df_kmyeb=df_kmyeb.fillna(0)df_kmyeb.head()拼接上、中、下旬的科目余额表Python在财税中的应用综合应用项目五任务二Python在编制科目余额表中的应用df_kmyeb.to_excel('按旬编制的科目汇总表.xlsx')将编制的科目汇总导出Python在财税中的应用综合应用项目五任务二Python在编制科目余额表中的应用#总账列设为索引df_kmyeb.set_index('总账',inplace=True)#打印上旬主营业务收入print('上旬的主营业务收入是')print(df_kmyeb.loc['主营业务收入','1-10日贷方金额'])#打印中旬主营业务收入print('中旬的主营业务收入是')print(df_kmyeb.loc['主营业务收入','11-20日贷方金额'])#打印下旬主营业务收入print('下旬的主营业务收入是')print(df_kmyeb.loc['主营业务收入','21-31日贷方金额'])#计算中旬对比上旬的主营业务收入变化print('中旬的主营业务收入对比上旬的变化值是:')print(df_kmyeb.loc['主营业务收入','11-20日贷方金额']-df_kmyeb.loc['主营业务收入','1-10日贷方金额'])可以对现有数据进行查找、分析:例:查找上、中、下旬“主营业务收入”数据及计算中旬与上旬的变化值并输出。Python在财税中的应用任务三Python在应收账款管理分析中的应用任务要求:根据应收款明细表,分析每家客户单位5月份对应的收款金额。将表中子公司划分为内部单位,进一步区分内部、外部的收款金额是多少。综合应用项目五任务三Python在应收账款管理分析中的应用Python在财税中的应用综合应用项目五importpandasaspdimportnumpyasnpdf=pd.read_excel('应收账款明细1.xlsx',sheet_name='应收款明细',header=3)df.head()读取数据,查看分析数据任务三Python在应收账款管理分析中的应用Python在财税中的应用综合应用项目五importpandasaspdimportnumpyasnpdf=pd.read_excel('应收账款明细1.xlsx',sheet_name='应收款明细',header=3)df.head()读取数据,查看分析数据df=df[['客户名称','收款日期1','收款金额1','收款日期2','收款金额2','收款日期3','收款金额3','收款日期4','收款金额4','内外部']]df=df.fillna('')#缺失值用空填充df清洗整理数据,用空代替缺失值(NaN,NaT等)任务三Python在应收账款管理分析中的应用Python在财税中的应用综合应用项目五def

cal_may_sale(x,y,z):

globaldf#声明函数内部使用的df是在函数外部定义的全局变量dfdf_=df.loc[:,[x,y,z]]#按客户名称、收款日期、收款金额字段过滤出对应的列df_['月']=pd.to_datetime(df_[y],errors='coerce').dt.month#转换收款日期列数据类型为datetime,无效解析设置为NaT,再从收款日期提取月df_=df_.loc[df_['月']==5.0]#筛选月=5.0值的数据行

#使用数据透视表,根据客户名称分类统计收款金额df_=pd.pivot_table(df_,index=x,values=z,aggfunc='sum').reset_index()

returndf_#返回生成的数据透视表创建自定义函数df1=cal_may_sale('客户名称','收款日期1','收款金额1')df1.head()根据“收款日期1”统计5月份每家单位收款额任务三Python在应收账款管理分析中的应用Python在财税中的应用综合应用项目五df2=cal_may_sale('客户名称','收款日期2','收款金额2')df2.head()根据“收款日期2”统计5月份每家单位收款额df1=cal_may_sale('客户名称','收款日期1','收款金额1')df1.head()根据“收款日期1”统计5月份每家单位收款额任务三Python在应收账款管理分析中的应用Python在财税中的应用综合应用项目五df4=cal_may_sale('客户名称','收款日期4','收款金额4')df4.head()根据“收款日期4”统计5月份每家单位收款额df3=cal_may_sale('客户名称','收款日期3','收款金额3')df3.head()根据“收款日期3”统计5月份每家单位收款额任务三Python在应收账款管理分析中的应用Python在财税中的应用综合应用项目五df5=pd.merge(df1,df2,on=['客户名称'],how='outer')df6=pd.merge(df3,df4,on=['客户名称'],how='outer')df7=pd.merge(df5,df6,on=['客户名称'],how='outer')df7=df7.fillna(0)#拼结后产生的NaN用0填充df7['5月收款合计']=df7[['收款金额1','收款金额2','收款金额3','收款金额4']].sum(axis=1)df7.loc['合计']=df7[['收款金额1','收款金额2','收款金额3','收款金额4']].sum()df7.loc['合计','客户名称']=''

#设置合计行的客户名称为空df7.loc[‘合计’,‘5月收款合计’]=df7.loc[‘合计’,‘收款金额1’:‘收款金额4’].sum()#计算5月收款合计df7拼接四张表,并计算出5月各家单位共收款金额任务三Python在应收账款管理分析中的应用Python在财税中的应用综合应用项目五df8=df[['客户名称','内外部']]df9=pd.merge(df7,df8,on='客户名称',how='left')df9划分5月收款总额中内部收款和外部收款任务三Python在应收账款管理分析中的应用df10=df9[['客户名称','5月收款合计','内外部']].drop_duplicates()df10.head()保留“客户名称”、“5月收款合计”、“内外部”列并删除重复行。Python在财税中的应用综合应用项目五df_new=df10.pivot_table(index=['客户名称'],columns=['内外部'],values='5月收款合计',aggfunc=np.sum,fill_value=0,margins=True,margins_name='合计')df_=''df_new.head()调整显示方式,把“内外部”作为列显示任务三Python在应收账款管理分析中的应用思考:此处使用df10.T来进行列与行的转置可以吗?df_new.to_excel('5月收款明细.xlsx')最终结果写入Excel表Python在财税中的应用任务四Python在计提摊销和折旧中的应用任务要求:根据专利表,统计原值、累计摊销、账面价值并存入新的Excel表。对固定资产表中的累计折旧进行计算并与原始表进行比对,把有差异的存入Excel表。综合应用项目五任务四Python在计提摊销和折旧中的应用Python在财税中的应用综合应用项目五importpandasaspdimportnumpyasnpfromdatetimeimportdate#第一部分

无形资产data=pd.read_excel('无形资产明细表1.xlsx')data读取无形资产明细表数据任务四Python在计提摊销和折旧中的应用Python在财税中的应用综合应用项目五data.drop(labels=95,inplace=True)data.head()删除合计行任务四Python在计提摊销和折旧中的应用data['月摊销额']=round(data['原值']/data['摊销月数'],2)data.head()增加“月摊销额”列,并计算值Python在财税中的应用综合应用项目五def

month_delta(start_date,end_date):flag=True

ifstart_date>end_date:start_date,end_date=end_date,start_dateflag=False

#结束日期的年-开始日期的年year_diff=end_date.year-start_date.year

#(结束日期的年-开始日期的年)*12+结束日期的月end_month=year_diff*12+end_date.month

#(结束日期的年-开始日期的年)*12+结束日期的月-开始日期的月delta=end_month-start_date.month

return-deltaifflagis

False

elsedelta

data['已摊销月数']=data.apply(lambdax:month_delta(x['授权公告日'],x['基准日期']),axis=1)data.head()增加“已摊销月数”列,并计算值任务四Python在计提摊销和折旧中的应用为了方便计算,我们根据日期计算公式定义一个函数,然后dataframe中应用apply函数,在函数中进行调用。Python在财税中的应用综合应用项目五data['累计摊销']=data.apply(lambdax:round(x['月摊销额']*x['已摊销月数'],2)ifx['已摊销月数']<x['摊销月数']else

0,axis=1)data['账面价值']=round(data['原值']-data['累计摊销'],2)data.head()增加“累计摊销”与“账面价值”列,并计算值任务四Python在计提摊销和折旧中的应用累计摊销计算方法Python在财税中的应用综合应用项目五data1=pd.pivot_table(data,index=['专利类型'],values=['原值','累计摊销','账面价值'],aggfunc='sum',margins=True,margins_name='小计')data1.head()按“专利类型”统计,对“原值”、“累计摊销”、“账面价值”列求和,并增加一行小计任务四Python在计提摊销和折旧中的应用Python在财税中的应用综合应用项目五data1=pd.pivot_table(data,index=['专利类型'],values=['原值','累计摊销','账面价值'],aggfunc='sum',margins=True,margins_name='小计')data1.head()按“专利类型”统计,对“原值”、“累计摊销”、“账面价值”列求和,并增加一行小计任务四Python在计提摊销和折旧中的应用data1.to_excel('无形资产汇总表.xlsx')存储到Excel表Python在财税中的应用综合应用项目五df=pd.read_excel('固定资产折旧明细表1.xlsx')df.head()读取固定资产数据任务四Python在计提摊销和折旧中的应用Python在财税中的应用综合应用项目五任务四Python在计提摊销和折旧中的应用df['审计年折旧率']=df.apply(lambdax:(1-x['残值率'])/x['使用年限'],axis=1)df['审计月折旧率']=round(df['审计年折旧率']/12,4)df['审计月折旧额']=df.apply(lambdax:round((x['审计月折旧率']*x['原值']),2),axis=1)df.head()添加“审计年折旧率”、“审计月折旧率”、“审计月折旧额”对其进行计算Python在财税中的应用综合应用项目五任务四Python在计提摊销和折旧中的应用enddate=date(2021,5,1)df['查询日期']=enddatedf['查询日期与购入日期差']=df.apply(lambdax:month_delta(x['开始使用日期'],enddate),axis=1)df['使用总月数']=df.apply(lambdax:month_delta(x['开始使用日期'],x['折旧到期日']),axis=1)df['审计累计折旧']=np.where(df['查询日期与购入日期差']>=df['使用总月数'],round(df['使用总月数']*df['月折旧额'],2),round(df['查询日期与购入日期差']*df['月折旧额'],2))df.head()添加“查询日期与购入日期差”、“使用总月数”、“审计累计折旧”列并对其进行计算Python在财税中的应用综合应用项目五任务四Python在计提摊销和折旧中的应用df['累计折旧']=round(df['累计折旧'],2)df['差异值']=(df['审计累计折旧']-df['累计折旧']).map(lambdax:0

ifx==0

elsex)df=df.sort_values('差异值')df累计折旧”保留两位小数,添加“差异值”,当“审计累计折旧”与“累计折旧”存在差额就返回差额,按差异值升序排序Python在财税中的应用综合应用项目五任务四Python在计提摊销和折旧中的应用df1=df.head(3)df1.to_excel('存在差异的固定资产明细.xlsx')将有差异的那三行数据以导出到Excel表Python在财税中的应用任务五Python在销售管理分析中的应用任务要求:根据销售数据,分析出2019和2020年每月各品类的利润综合应用项目五任务五Python在销售管理分析中的应用Python在财税中的应用综合应用项目五importpandasaspdimportnumpyasnpfromopenpyxlimportload_workbookfrommatplotlibimportpyplotasplt导入所需要的模块任务五Python在销售管理分析中的应用wb=load_workbook('销售数据2.xlsx')sheet_names=wb.sheetnameskey='销售'all_sale_data=pd.DataFrame()forsheet_nameinsheet_names:

ifkeyinsheet_name:current_data=pd.read_excel('销售数据2.xlsx',sheet_name=sheet_name)all_sale_data=pd.concat([current_data,all_sale_data])all_sale_data读取数据如果Excel表格结构比较杂乱,数据分散不同的工作表中,可以使用openpyxl将数据转换为适合进一步分析的DataFramePython在财税中的应用综合应用项目五importpandasaspdimportnumpyasnpfromopenpyxlimportload_workbookfrommatplotlibimportpyplotasplt导入所需要的模块任务五Python在销售管理分析中的应用wb=load_workbook('销售数据2.xlsx')sheet_names=wb.sheetnameskey='销售'all_sale_data=pd.DataFrame()forsheet_nameinsheet_names:

ifkeyinsheet_name:current_data=pd.read_excel('销售数据2.xlsx',sheet_name=sheet_name)all_sale_data=pd.concat([current_data,all_sale_data])all_sale_data读取数据如果Excel表格结构比较杂乱,数据分散不同的工作表中,可以使用openpyxl将数据转换为适合进一步分析的DataFrame。Python在财税中的应用综合应用项目五all_sale_()检查是否有NULL值任务五Python在销售管理分析中的应用all_sale_data=all_sale_data.dropna(axis=0)all_sale_data删除空值发现有29行单价列存在空值dropna函数中axis=0参数可以不写,默认就为0Python在财税中的应用综合应用项目五all_sale_data.duplicated().sum()#结果为5,说明有5行重复值#keep='first'选择最前一项保留all_sale_data=all_sale_data.drop_duplicates(keep='first')all_sale_data检查是否存在重复值任务五Python在销售管理分析中的应用查找异常值all_sale_data.describe()数量、单价存在0值,需要把“数量”、“单价”中等于0的行过滤掉。Python在财税中的应用综合应用项目五all_sale_data=all_sale_data[all_sale_data['数量']>0]all_sale_data=all_sale_data[all_sale_data['单价']>0]all_sale_data过滤数量、单价为0的行任务五Python在销售管理分析中的应用读取EXCEL表中的“产品明细表”与“品类名细表”两个工作表,并拼接df=pd.read_excel('销售数据2.xlsx',sheet_name='产品明细表')df1=pd.read_excel('销售数据2.xlsx',sheet_name='品类明细表')df2=pd.merge(df,df1,on=['品类id'],how='left')df2Python在财税中的应用综合应用项目五all_sale_data=pd.merge(all_sale_data,df2,on

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论