大家好,我是Python進階者。
一、前言
前幾天在Python白銀交流群【上海新年人】問了一個Python自動化辦公的問題,問題如下:
是這樣子的,公司要求實際到手12000塊,然后呢要朝前推算出,這個人稅前工資,個稅,累計數(shù)什么的,用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['扣除數(shù)']).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['稅前應發(fā)工資'] = 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數(shù)據(jù)。
二、實現(xiàn)過程
這里【論草莓如何成為凍干莓】給了一個指導,具體如下所示:
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['累計不含稅應納稅所得額'] # 修改之前計算為負數(shù)
df['本期預繳個稅'] = df['累計預繳個稅'].diff().fillna(df['累計預繳個稅'])#包含某列與其上一行的差值,保留第一個
df['社保公積金個人部分'] = cum
df['稅前應發(fā)工資'] = 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['扣除數(shù)']).cumsum()
df['累計應納稅所得稅含稅'] = df.apply(calculate_tax, axis=1)
result = calculate_pre_tax(df, cum).round(2)
print(result)
@上海新年人 修改好了,DataFrame和數(shù)值比較還是DataFrame,不能直接用if
順利地解決了粉絲的問題。
如果你也有類似這種Python相關的小問題,歡迎隨時來交流群學習交流哦,有問必答!
三、總結
大家好,我是Python進階者。這篇文章主要盤點了一個Python自動化辦公的問題,文中針對該問題,給出了具體的解析和代碼實現(xiàn),幫助粉絲順利解決了問題。
最后感謝粉絲【上海新年人】提出的問題,感謝【論草莓如何成為凍干莓】給出的思路,感謝【莫生氣】等人參與學習交流。