繁体   English   中英

lambda表达式未更改熊猫数据框的值

[英]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))

有人可以帮忙吗?

熊猫applyDataFrame具有套用值的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM