[英]lambda expression is not changing the values of pandas' dataframe
我有以下功能,如果当前值为“ ...”,则将列“ A”的值更改为np.NaN。 但是,由于某种原因,什么都没有改变。
def findEmpty(row):
row['A'] = np.NaN
energy[energy['A'] == '...'].apply(lambda x:findEmpty(x))
有人可以帮忙吗?
熊猫apply
传DataFrame
具有套用值的DataFrame
。 尝试这个:
energy = energy[energy['A'] == '...'].apply(lambda x:findEmpty(x))
这是一个更有效的解决方案
energy.ix[(energy['A'] == '...'), 'A'] = np.NaN
请注意,lambda函数在纯Python中。 换句话说,当您这样做时,基本上就放弃了Pandas中所有不错的C加速器。 如果使用大型数据集,请尽量避免使用循环和lambda函数(如果可能)
熊猫有一种“替换”方法,可以提高可读性
energy.replace('...', np.NaN, inplace=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.