I have a df with two columns and I want to combine both columns ignoring the NaN values. The catch is that sometimes both columns have NaN values in which case I want the new column to also have NaN. Here's the example:
df = pd.DataFrame({'foodstuff':['apple-martini', 'apple-pie', None, None, None], 'type':[None, None, 'strawberry-tart', 'dessert', None]})
df
Out[10]:
foodstuff type
0 apple-martini None
1 apple-pie None
2 None strawberry-tart
3 None dessert
4 None None
I tried to use fillna
and solve this :
df['foodstuff'].fillna('') + df['type'].fillna('')
and I got :
0 apple-martini
1 apple-pie
2 strawberry-tart
3 dessert
4
dtype: object
The row 4 has become a blank value. What I want in this situation is a NaN value since both the combining columns are NaNs.
0 apple-martini
1 apple-pie
2 strawberry-tart
3 dessert
4 None
dtype: object
Use
fillna
on one column with the fill values being the other column:The resulting output: