盘点一个Python自动化办公实战的工作教程

科技   2024-10-31 09:03   湖南  
点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

朱雀桥边野草花,乌衣巷口夕阳斜。

大家好,我是Python进阶者。

一、前言

前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,问题如下:

是这样子的,公司要求实际到手12000块,然后呢要朝前推算出,这个人税前工资,个税,累计数什么的,用EXCEL我已经写出来了。

然后呢,我想用pandas来做做看,我写了一个代码,不过没成功,请各位给我看看问题在哪里。代码如下:

def calculate_pre_tax(df,cum):
    kou_cs = 5000
    tax_brackets = [
        (34920, 0.03, 0),
        (132120, 0.10, 2520),
        (256920, 0.20, 16920),
        (346920, 0.25, 31920),
        (514920, 0.30, 52920),
        (709920, 0.35, 85920)
    ]
    df['累计不含税应纳税所得额'] = (df['税后工资'] - df['扣除数']).cumsum()

    for threshold, rate, deduction in tax_brackets:
        if df['累计不含税应纳税所得额'] <= threshold:
            df['累计应纳税所得税含税'] = (df['累计不含税应纳税所得额'] - deduction)/rate
    df['累计预缴个税'] = df['累计不含税应纳税所得额'] - df['累计应纳税所得税含税']
    df['本期预缴个税'] = df['累计预缴个税'].diff().fillna(df['累计预缴个税'])#包含某列与其上一行的差值,保留第一个
    df['社保公积金个人部分'] = cum
    df['税前应发工资'] = df['税后工资'] + df['本期预缴个税'] + df['社保公积金个人部分']
    return df

cum = 2000
path = r'C:\Users\Administrator\Desktop'
file_name = '推算.xlsx'
df = pd.read_excel(os.path.join(path,file_name))

print(calculate_pre_tax(df,cum))

并且给了对应的Excel数据。

二、实现过程

这里【论草莓如何成为冻干莓】给了一个指导,具体如下所示:

def calculate_tax(s):  # 仅返回单条累计不含税应纳税所得额
    kou_cs = 5000
    tax_brackets = [
        (34920, 0.03, 0),
        (132120, 0.10, 2520),
        (256920, 0.20, 16920),
        (346920, 0.25, 31920),
        (514920, 0.30, 52920),
        (709920, 0.35, 85920)
    ]
    
    for threshold, rate, deduction in tax_brackets:
        if s['累计不含税应纳税所得额'] <= threshold:
            return (s['累计不含税应纳税所得额'] - deduction)/ (1 - rate)
    return 0

def calculate_pre_tax(df, cum):  # 实际计算
    df['累计预缴个税'] = df['累计应纳税所得税含税'] - df['累计不含税应纳税所得额'# 修改之前计算为负数
    df['本期预缴个税'] = df['累计预缴个税'].diff().fillna(df['累计预缴个税'])#包含某列与其上一行的差值,保留第一个
    df['社保公积金个人部分'] = cum
    df['税前应发工资'] = df['税后工资'] + df['本期预缴个税'] + df['社保公积金个人部分']
    return df

cum = 2000
path = r'C:\Users\Administrator\Desktop'
file_name = '推算.xlsx'
df = pd.read_excel(os.path.join(path,file_name))

df['累计不含税应纳税所得额'] = (df['税后工资'] - df['扣除数']).cumsum()
df['累计应纳税所得税含税'] = df.apply(calculate_tax, axis=1)
result = calculate_pre_tax(df, cum).round(2)
print(result)
@上海新年人 修改好了,DataFrame和数值比较还是DataFrame,不能直接用if

顺利地解决了粉丝的问题。

如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!

三、总结

大家好,我是Python进阶者。这篇文章主要盘点了一个Python自动化办公的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【上海新年人】提出的问题,感谢【论草莓如何成为冻干莓】给出的思路,感谢【莫生气】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting1),应粉丝要求,我创建了一些高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

Python爬虫与数据挖掘
人生苦短,我用Python。该公众号专注于分享Python网络爬虫、数据挖掘、数据分析、数据处理、数据可视化、自动化测试、运维、大数据、人工智能、云计算、机器学习等工具资源、热点资讯、相关技术文章、学习视频和学习资料等,期待您的加入~~~
 最新文章