如果值是nan,则通过另一个pandas中的值替换我的pandas中的列值。

17 浏览
0 Comments

如果值是nan,则通过另一个pandas中的值替换我的pandas中的列值。

我有两个pandas数据框,第一个有2000行,如下所示:

    key            B           C           D
key1              11          nan         nan 
key2              nan         33          88
key3              nan         44          99
key4              22          55          nan 

第二个数据框有大约700个值:

    key            B           C           D
key4              22           55         77
key2              55           42         63
key3              53           23         nan 

我想通过键值遍历第一个数据框,并用第二个pandas中匹配的值替换nan的值,如下所示:

    key            B           C           D
key1              11          nan         nan 
key2              55          33          88
key3              53          44          99
key4              22          55          77

我的两个数据框包含字符串,我只是为了举例使用了数字。

0
0 Comments

在这段代码中,出现了“replace column values in my pandas by values of another pandas if the values is nan”这个问题。问题的原因是在一个pandas的DataFrame中,有一些列的值是NaN,我们想要用另一个pandas的DataFrame中对应列的值来替换这些NaN值。

解决这个问题的方法是使用pandas的fillna函数。具体操作是将第一个DataFrame(df1)中的NaN值替换为另一个DataFrame(df2)中对应列的值。

下面是代码示例:

df1.fillna(df2)

执行这段代码后,df1中的NaN值将被df2中对应列的值替换。

例如,假设我们有以下两个DataFrame:

df1:
      B     C     D
key                   
key1  NaN   NaN   NaN
key2  55.0  33.0  88.0
key3  53.0  NaN   99.0
key4  22.0  55.0  77.0
df2:
      B     C     D
key                   
key1  11.0  22.0  33.0
key3  44.0  55.0  66.0

执行代码df1.fillna(df2)后,df1将变为:

      B     C     D
key                   
key1  11.0  22.0  33.0
key2  55.0  33.0  88.0
key3  53.0  55.0  99.0
key4  22.0  55.0  77.0

可以看到,df1中的NaN值被df2中对应列的值替换了。

通过使用pandas的fillna函数,我们可以方便地将一个DataFrame中的NaN值替换为另一个DataFrame中对应列的值,解决了“replace column values in my pandas by values of another pandas if the values is nan”这个问题。

0