excel学习库

excel表格_excel函数公式大全_execl从入门到精通

算自己该交多少税?别再用excel了,用Python写一段代码就OK

大家好,欢迎收看思路实验室出品的Python入门教程,我是室长。

我们把两个表整合以后出现了一些不和谐的情况:

drop方法

注意这里的参数,columns是所要丢掉的列名,如果需要丢掉多列就填列名的列表。inplace是是否修改这个表格本身,默认为False。如果inplace=False,需要将方法的返回值存入变量才有意义。

这时候我们再去整合两个表,就不会出现两列数据重复的问题。

fillna方法

这下整合后的表就比较完善了。

接下来我们需要计算应纳税所得额了。大家知道年收入6万元以下的部分是无需纳税的,减去6万元后的年收入还要再减去专项扣除的部分才是应纳税所得额(当然实际情况可能会复杂一些,这里只是举一个例子,用词也可能不准确,请大家多指正。)那公式就有了:应纳税所得额 = 年收入-60000-专项扣除。我们如何算出每个人的应纳税所得额并作为新的一列存到表格中呢?非常简单也非常直观:

但是简单归简单,不能不合逻辑啊!这里张三的应纳税所得额是负值。你一年没挣够6万,国家不找你收税就完了,怎么的,还想让国家给你纳税啊?

clip方法

应纳税所得额安排明白了,就差最终需要计算的纳税额了。对于纳税额我们可以采用速算扣除数的方法进行快捷计算,但因为是阶梯税制,没办法用一个简单的公式来计算。但是我们可以写一个函数去处理这种情况。

目前的阶梯税制一共有七档,我们需要判断给定的应纳税所得额在不在这个档里,如果在,就按这个档的速算扣除数和税率进行计算。我们把速算扣除数的信息写入到表格里,并转换为DataFrame:

条件都摆在这儿了,我们可以用for循环去挨个试。

shape属性

其次,我们调用每一行的某个值时总免不了使用loc方法提取单独行,代码写起来比较麻烦,所以干脆把提取每一行的操作存到一个变量名里。

然后我们就需要做判断了,如果应纳税所得额大于这一档的起点并小于这一档的终点,那就要按这一档的速算扣除数和税率去计算。最后一档实际上并没有设置上限,但为了好看还是填了一个数。所以刚才那个一千万是我瞎编的,你写十个亿也可以。万一真有人的收入超过这个范围了也不用怕,我们在后边设置了条件,也就是循环到最后一次的时候就会归为最后一档。

最后我们来计算纳税额。公式很简单:纳税额 = 税率 * 应纳税所得额 - 速算扣除数。

写成函数,大概就是这个样子:

广播操作apply方法

但apply方法的第一个参数坑位填的是一个函数。我们把tax函数填进去?那tax函数的参数填什么呢?

仔细看我们定义的函数,第一个参数是应纳税所得额,是一个数,现在我们怎么获得这个数呢?不知道,我也不能填result['应纳税所得额'],这是一列数据,数据类型不匹配。可我也不知道它广播到哪行了,我给不出一个确切的行数,所以也不能使用loc方法。

lambda函数

要去详说lambda函数的功能和用法,那可是一时半会儿也说不完。但在这个程序里,它的作用是这样的:

apply方法把表格中的一行塞给了lambda,这一行是哪行?你不知道,lambda也不管,但你可以让lambda把这行改成个你喜欢的名字,然后按照你喜欢的名字代入到你的函数里。所以在这个应用里,lambda函数解决了我们不知道该怎么调用数据的问题。

apply方法的axis参数是指广播的方向,axis=1即纵向广播(就像excel里向上下拖动单元格右下角的黑色小方块)

我们赶快来打印一下结果:

18行代码,我们就已经完成了从表格读取到整合到调整数据再到最后算出纳税额的全过程!想一想,如果使用excel去计算纳税额,需要使用多长的函数呢?

to_csv方法

看看代码文件夹下,是不是有相应的文件生成了?

赞和在看

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年8月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接