我想用'N / A'替换列的缺失值(或空白'')。我尝试了下面的代码,但可能犯了一些错误或没有使用正确的方法。
df2['test_edited'] = df2['test'].map(lambda x: 'N/A' if x.empty() )
或
df2['test_edited'] = df2['test'].map(lambda x: 'N/A' if x == ' ' )
这是我看到的错误: SyntaxError:语法无效
我以前尝试过的: 我之前使用过if-else和lambda,可能这是更标准的方法,但在这种特殊情况下我只想要一个If-Then语句类型的用法。因为我只需要替换空白或缺失值,但保持列的其他值不变。例如,在下面的示例中,我想将年龄42替换为0,但我希望保持其他年龄值不变,如果您使用if-else语句则无效
dfx['Age'] = dfx['Age'].map(lambda x: '0' if x == 42 else 1)
所以我的问题是: 1.是否可以在lambda中仅使用If-then类型的语句 2.如何同时在多个列上执行相同的操作?例如,在下面的例子中,如果我有test1 test2 test3等,我想在一行中处理所有这些。
缺失的值基本上是空白的,看起来像这样
答案 0 :(得分:0)
要填充缺失值,我们一般使用.fillna
对于单个列,如此:
df2['test_edited'] = df2['test'].fillna('N/A')
如果您有多个列并想要复制每个列,其中NaN值被替换为'N / A',正如Yilun Zhang在他的回答中所写,您可以同时在多个列上使用fillna作为好。
col_list = ['test', 'customer']
nan_replaced = ['test_edited', 'customer_edited']
df[nan_replaced] = df[col_list].fillna('N/A')
答案 1 :(得分:0)
您只需定义要填充缺失值的列列表,然后在该子集上应用fillna
:
fill_list = ["A", "B", "C"]
df2[fill_list] = df2[fill_list].fillna("N/A")