我有一个5列的数据框。
其中三列经常缺少值(只发生在一起)
现在,我还有三个值列表,我想填写每列的na值。
a = [1.5,2.5,3.5]
B = [1,2,3]
C = [1,2,3]
请注意,每个列表仅包含3个值(因为每列有三行缺失值)。主表有14行。
我的第一种方法是:
df.where(df.notnull(),pd.Series(a),axis = 0)
但这给我带来了一个有两个问题的主表
1)用列表A值
填充所有三列2)它匹配主表和列表A的行。这意味着主df用列表A的第3个值填充第一个nan值(第3行)。
答案 0 :(得分:0)
您可以使用df.iloc
:
values = np.array([a, b, c])
idx = df.iloc[:, :3].isnull().all(0).index
df.iloc[idx, :3] = values
答案 1 :(得分:-1)
您可以使用以下行 df.where(df.notnull(),pd.Series(a(0),b(0),c(0)),axis = 0)