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
:
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)