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)
我正在尝试在特定列上使用 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)