类似于管道,上一个函数处理完成的结果交给下一个函数,而不是一个函数套一个函数。
def subtract_federal_tax(df):
return df * 0.9
def subtract_state_tax(df, rate):
return df * (1 - rate)
def subtract_national_insurance(df, rate, rate_increase):
new_rate = rate + rate_increase
return df * (1 - new_rate)
# 函数一个套一个,阅读性非常差
subtract_national_insurance(
subtract_state_tax(subtract_federal_tax(df), rate=0.12),
rate=0.05,
rate_increase=0.02)
改用 pipe,具体文档查看 pandas.Series.pipe。
df.pipe(subtract_federal_tax)
.pipe(subtract_state_tax, rate=0.12)
.pipe(subtract_national_insurance, rate=0.05, rate_increase=0.02)
pipe 第一个参数传递函数,第二个参数 *args
为传递函数的参数列表。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。