fillna(0)仅针对特定列而不指定每个列

时间:2017-09-22 15:14:51

标签: python pandas dataframe fillna

我试图在特定列上使用pandas fillna()。问题是,我不想命名所有这些列。我有一个DF,让我们称它为df_abc,另一个称为df_123。

df_abc有列

A | B | ç

x | y | ž

k | w | ķ

df_123有列

1 | 2 | 3

e | e | ž

现在我按照我想要的方式合并这些,结果是:

A | B | C | 1 | 2 | 3

x | y | z | nan | nan | nan

k | w | k | e | e | ž

现在我想用fillna()用0填充第1,2,3列。我试过:

columns = list(df_123.columns.values)
self.df_result[columns] = self.df_result[columns].fillna(0)

它给了我

  

ValueError:列的长度必须与键的长度相同

我认为必须有一种方法以干净的方式填充这些列。

1 个答案:

答案 0 :(得分:1)

您可以使用切片来做到这一点,因为您不想填写前三列的纳米,即

df.iloc[:,3:] = df.iloc[:,3:].fillna(0)