鱼C论坛

 找回密码
 立即注册
查看: 1140|回复: 1

关于lambda的问题

[复制链接]
发表于 2019-6-21 07:40:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
看了小甲鱼的第21课"函数:lambda表达式"之后,又去国外网站看了几个大神写的lambda代码。

看到一句:lambda x, d: x.fillna(d[x.name](x)), args=(d,)
1. 为什么这里要用args=(d,) ?
2. 为什么 d后面必须有小数点(我尝试了取消,结果程序报错)。
3. 这里的x和d是否作为2个不同变量,传入lambda?x和d分别代表什么?(为什么后面的args只取了一个d?)

原函数如下:
import pandas as pd
import numpy as np

df=pd.DataFrame(np.arange(36).reshape(6,6),columns=list("ABCDEF"))
df.iloc[1,1]=np.nan
df.loc[3,"C"]=np.nan
a=df.fillna("Joe")
print(df)

d = {'B': np.mean, 'C': np.nanmedian}
df[['B', 'C']] = df[['B', 'C']].apply(lambda x, d: x.fillna(d[x.name](x)), args=(d,))
print(df)       
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-21 09:57:14 | 显示全部楼层
args=(d,) 表示args是个元组,只有一个元素的元组必须这么表示,不是小数点,是逗号。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-16 11:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表