我试图在特定列上使用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:列的长度必须与键的长度相同
我认为必须有一种方法以干净的方式填充这些列。
答案 0 :(得分:1)
您可以使用切片来做到这一点,因为您不想填写前三列的纳米,即
df.iloc[:,3:] = df.iloc[:,3:].fillna(0)