2016-05-02 3 views
5

voglio sbarazzarsi di alcuni record con NaN. Questo funziona perfettamente:Pandas sostituire tutti gli elementi di fila con NaN se un valore è NaN

df.dropna(axis=0, how='any',inplace=True) 

Tuttavia, cambia la forma del mio dataframe, e l'indice non è più uniformemente distanziate. Pertanto, mi piacerebbe sostituire tutti gli elementi in queste righe con np.nan. C'è un modo semplice per fare questo?

Stavo pensando di ricampionare il dataframe dopo dropna, ma sembra funzionare solo con un intervallo prescritto, mentre preferisco usare l'indice originale. Un altro approccio sarebbe quello di un loop all'interno di dataframe con iterrows, ma che si sente anche ingombranti.

+0

Se il problema è la modifica dell'indice, è sufficiente ripristinarlo correttamente? df = df.reset_index (goccia = True) – ysearka

risposta

2

Il comando di seguito seleziona tutte le righe con un valore pari a Nan, e assegna NaNs al ​​resto di tali righe.

df.loc[df.isnull().any(axis=1), :] = np.nan