Search code examples
pythonpandasmissing-data

Create a new column from existing columns where one has missing values


I am trying to create a new column based on both columns. Say I want to create a new column z, and it should be the value of y when it is not missing and be the value of x when y is indeed missing. So in this case, I expect z to be [1, 8, 10, 8].

   x   y
0  1 NaN
1  2   8
2  4  10
3  8 NaN

Solution

  • The new column 'z' get its values from column 'y' using df['z'] = df['y']. This brings over the missing values so fill them in using fillna using column 'x'. Chain these two actions:

    >>> df['z'] = df['y'].fillna(df['x'])
    >>> df
       x   y   z
    0  1 NaN   1
    1  2   8   8
    2  4  10  10
    3  8 NaN   8