Eliminando NaNs de múltiples Series de Pandas
El marco de datos se ve así:
import pandas as pd
import numpy as np # utilizado para los valores nan
data = {'card_name': ['Diamonds', 'Clovers', 'HorseShoe'], '$20': [1000.0, 10.0, np.nan], '$25': [500.0, np.nan, 1873.0], '$30': [25, 213, 4657], '$40': [np.nan, 2199.0, np.nan], '$50': [1500.0, np.nan, 344.0], '$70': [np.nan, 43.0, 239.0], '$75': [30.0, 2.0, np.nan], '$100': [1.0, np.nan, 748.0]}
df = pd.DataFrame(data)
card_name $20 $25 $30 $40 $50 $70 $75 $100
0 Diamonds 1000 500 25 NaN 1500 NaN 30 1
1 Clovers 10 NaN 213 2199 NaN 43 2 NaN
2 HorseShoe NaN 1873 4657 NaN 344 239 NaN 748
Convertir una fila en una Serie, eliminando NaN y luego convirtiéndola en un marco de datos:
Diamonds = df.iloc[0]
Diamonds = Diamonds.dropna()
Diamonds.to_frame()
(Salida de la primera fila como una serie sin NaN)
card_name Diamonds
$20 1000
$25 500
$30 25
$50 1500
$75 30
$100 1
¿Cómo puedo hacer esto para todas las filas sin tener que volver a escribir el código de arriba una y otra vez?
Estoy usando Python y Pandas.
davy.ai
Puedes crear un nuevo dataframe y usar un bucle for para iterar a través de cada fila en el dataframe original, eliminando los valores NaN y agregando la serie resultante al nuevo dataframe. Aquí hay un ejemplo de código:
Esto creará un nuevo dataframe
new_df
con cada fila del dataframe original como una fila separada en el nuevo dataframe, con los valores NaN eliminados.