Python Pandas replace NaN in one column with value from corresponding row of second column Python Pandas replace NaN in one column with value from corresponding row of second column python python

Python Pandas replace NaN in one column with value from corresponding row of second column


Assuming your DataFrame is in df:

df.Temp_Rating.fillna(df.Farheit, inplace=True)del df['Farheit']df.columns = 'File heat Observations'.split()

First replace any NaN values with the corresponding value of df.Farheit. Delete the 'Farheit' column. Then rename the columns. Here's the resulting DataFrame:

resulting DataFrame


The above mentioned solutions did not work for me. The method I used was:

df.loc[df['foo'].isnull(),'foo'] = df['bar']


An other way to solve this problem,

import pandas as pdimport numpy as npts_df = pd.DataFrame([[1,"YesQ",75,],[1,"NoR",115,],[1,"NoT",63,13],[2,"YesT",43,71]],columns=['File','heat','Farheit','Temp'])def fx(x):    if np.isnan(x['Temp']):        return x['Farheit']    else:        return x['Temp']print(1,ts_df)ts_df['Temp']=ts_df.apply(lambda x : fx(x),axis=1)print(2,ts_df)

returns:

(1,    File  heat  Farheit  Temp                                                                                    0     1  YesQ       75   NaN                                                                                        1     1   NoR      115   NaN                                                                                        2     1   NoT       63  13.0                                                                                        3     2  YesT       43  71.0)                                                                                       (2,    File  heat  Farheit   Temp                                                                                   0     1  YesQ       75   75.0                                                                                       1     1   NoR      115  115.02     1   NoT       63   13.03     2  YesT       43   71.0)