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

fillna(0) only for specific columns without naming each of them

我正在尝试在特定列上使用 pandas fillna()。问题是,我不想命名所有这些列。我有一个 DF,姑且称它为 df_abc,还有一个 df_123.

df_abc 有列

一个 |乙 | C

x |是 | z

k |瓦 | k

df_123 有列

1 | 2 | 3

e |电子 | z

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

一个 |乙 |丙 | 1 | 2 | 3

x |是 | z |nan|nan|nan

k |瓦 | k |电子 |电子 | z

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

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

它给了我

ValueError: Columns must be same length as key

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

您可以使用切片来做到这一点,以防您不想为前三列填充 nan,即

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