Python 在特定条件下,使用中的lambda映射将单元格值设置为NaN
如果单元格的当前值不满足某些条件,我尝试将特定列中某些单元格的值更改为NaN 特别是,我有一列价格。df[‘价格’]。此列中的值如下所示:[23,34,36/375,NA,62]。我想检查该列某一行中的值是否为数字,如果不是,则将该值更改为NaN。因此,得到的列向量是[23,34,NaN,NaN,62] 我尝试了一种迭代的方法,但是它太慢了/可能根本不起作用。在熊猫身上使用lambda和map速度非常快,但我无法理解 我会在这里使用:Python 在特定条件下,使用中的lambda映射将单元格值设置为NaN,python,pandas,dictionary,lambda,nan,Python,Pandas,Dictionary,Lambda,Nan,如果单元格的当前值不满足某些条件,我尝试将特定列中某些单元格的值更改为NaN 特别是,我有一列价格。df[‘价格’]。此列中的值如下所示:[23,34,36/375,NA,62]。我想检查该列某一行中的值是否为数字,如果不是,则将该值更改为NaN。因此,得到的列向量是[23,34,NaN,NaN,62] 我尝试了一种迭代的方法,但是它太慢了/可能根本不起作用。在熊猫身上使用lambda和map速度非常快,但我无法理解 我会在这里使用: 安迪的解决方案很有效。但是,convert\u object
安迪的解决方案很有效。但是,
convert\u objects
方法现在已被弃用,并已在版本0.18
中删除
改为将pandas.to_numeric()
与参数errors='concurve'
一起使用:
columns = [list of clumns to change]
for col in columns:
df[col] = pd.to_numeric(df[col], errors='coerce')
columns = [list of clumns to change]
for col in columns:
df[col] = pd.to_numeric(df[col], errors='coerce')