Non capisco come i NaN vengano trattati nei panda, sarei felice di avere qualche spiegazione, perché la logica mi sembra "spezzata".Rilasciare NaN da un pda dataframe
Ho un file csv, che sto caricando usando read csv. ho una colonna "commenti" in quel file, che è vuoto la maggior parte delle volte.
Ho isolato quella colonna e ho provato vari modi per eliminare i valori vuoti. In primo luogo, quando im scrittura:
marked_results.comments
ottengo:
0 VP
1 VP
2 VP
3 TEST
4 NaN
5 NaN
....
Il resto della colonna è NaN. quindi i panda caricano voci vuote come NaN. ottimo finora. Ora sto cercando di cancellare quelle voci. Iv provato:
marked_results.comments.dropna()
e ricevuto la stessa colonna. nulla è stato lasciato cadere. confuso, avevo cercato di capire il motivo per cui non è stata abbandonata, così ho provato:
marked_results.comments==NaN
e ricevuto una serie di Falses. Niente era NaNs ... confusionario. poi ho provato:
marked_results.comments==nan
E ancora, nient'altro che falses. Mi sono incavolato un po 'e ho pensato di essere più intelligente. così ho fatto:
In [71]:
comments_values = marked_results.comments.unique()
comments_values
Out[71]:
array(['VP', 'TEST', nan], dtype=object)
Ah, gotya! così ora ho provato:
marked_results.comments==comments_values[2]
e sorprendentemente, ancora tutti i risultati sono Falses !!! l'unica cosa che ha funzionato è stato:
marked_results.comments.isnull()
che returnd il risultato desiderato. Qualcuno può spiegare cosa è successo qui ??
[NaN! = NaN] (http: // stackoverflow.it/questions/1565164/what-is-the-rationale-for-all-comparisons-return-false-for-ieee754-nan-values) - leggi la risposta accettata di Stephen Canon. – fvu