正确的方法来替换熊猫列匹配中另一个数据框的NaN值

时间:2018-07-28 12:23:19

标签: python pandas numpy

我是pandas的新手,并尝试使用列值匹配的df2替换df1中的列值(NaN)。并面临以下错误。

public class Meal
{

  public int MealId {get;set;}

 //  ...
  public int? PictureId {get;set;}
  public virtual Picture Picture {get;set;}
}

我有两个具有300万条记录的数据框,并且在执行以下操作时遇到以下错误:

  

ValueError:无法从重复的轴重新索引

1 个答案:

答案 0 :(得分:6)

您轻松填充Nan的方法是使用fillna函数。就您而言,如果您将dfs作为(请注意索引)

    unique_col      Measure
0   944537          NaN
1   7811403         NaN
2   8901242114307   1.0


    unique_col      Measure
0   944537          18.0
1   7811403         12.0
2   8901242114307   17.5

您可以简单地

>>> df.fillna(df2)


    unique_col       Measure
0   944537           18.0
1   7811403          12.0
2   8901242114307    1.0

如果索引与上面的不相同,则可以将它们设置为相同的并使用相同的功能

df = df.set_index('unique_col')
df.fillna(df2.set_index('unique_col'))