熊猫:如何根据另一列替换列中的Nan值?

时间:2020-06-13 19:57:30

标签: python pandas

鉴于此,我有一个数据集,如下所示:

dict = {
    "A": [math.nan,math.nan,1,math.nan,2,math.nan,3,5],
    "B": np.random.randint(1,5,size=8)
}

dt = pd.DataFrame(dict)

我最喜欢的输出是,如果in列A中有一个Nan,则将同一行中的B列的值乘以Nan。因此,鉴于此,以下是我的数据集:

    A  B
  NaN  1
  NaN  1
  1.0  3
  NaN  2
  2.0  3
  NaN  1
  3.0  1
  5.0  3

我最喜欢的输出是:

  A  B
  2  1
  2  1
  1  3
  4  2
  2  3
  2  1
  3  1
  5  3

我当前的解决方法如下,该方法不起作用:

dt[pd.isna(dt["A"])]["A"] = dt[pd.isna(dt["A"])]["B"].apply( lambda x:2*x  )

print(dt)

1 个答案:

答案 0 :(得分:1)

在您使用fillna的情况下

df.A.fillna(df.B*2, inplace=True)
df
     A  B
0  2.0  1
1  2.0  1
2  1.0  3
3  4.0  2
4  2.0  3
5  2.0  1
6  3.0  1
7  5.0  3