seleccionar recorrer data columnas python-2.7 pandas dataframe nan

python-2.7 - recorrer - replace nan pandas



Python Pandas reemplaza NaN en una columna con el valor de la fila correspondiente de la segunda columna (3)

Estoy trabajando con este Pandas DataFrame en Python 2.7.

File heat Farheit Temp_Rating 1 YesQ 75 N/A 1 NoR 115 N/A 1 YesA 63 N/A 1 NoT 83 41 1 NoY 100 80 1 YesZ 56 12 2 YesQ 111 N/A 2 NoR 60 N/A 2 YesA 19 N/A 2 NoT 106 77 2 NoY 45 21 2 YesZ 40 54 3 YesQ 84 N/A 3 NoR 67 N/A 3 YesA 94 N/A 3 NoT 68 39 3 NoY 63 46 3 YesZ 34 81

Necesito reemplazar todos los NaN en la columna Temp_Rating con el valor de la columna Farheit .

Esto es lo que necesito:

File heat Observation 1 YesQ 75 1 NoR 115 1 YesA 63 1 YesQ 41 1 NoR 80 1 YesA 12 2 YesQ 111 2 NoR 60 2 YesA 19 2 NoT 77 2 NoY 21 2 YesZ 54 3 YesQ 84 3 NoR 67 3 YesA 94 3 NoT 39 3 NoY 46 3 YesZ 81

Si hago una selección booleana, puedo elegir solo una de estas columnas a la vez. El problema es que si trato de unirme a ellos, no puedo hacerlo mientras mantengo el orden correcto.

¿Cómo puedo encontrar Temp_Rating filas Temp_Rating con NaN s y reemplazarlas con el valor en la misma fila de la columna Farheit ?


Las soluciones mencionadas anteriormente no funcionaron para mí. El método que utilicé fue:

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


Otra forma de resolver este problema,

import pandas as pd import numpy as np ts_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)

devoluciones:

(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.0 2 1 NoT 63 13.0 3 2 YesT 43 71.0)


Suponiendo que su DataFrame está en df :

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

Primero reemplace los valores de NaN con el valor correspondiente de df.Farheit . Eliminar la columna ''Farheit'' . Luego cambie el nombre de las columnas. Aquí está el DataFrame resultante: