Sto utilizzando la libreria pandas per leggere in alcuni dati CSV. Nei miei dati, alcune colonne contengono stringhe. La stringa "nan"
è un valore possibile, come una stringa vuota. Sono riuscito a far sì che i panda leggessero "nan" come una stringa, ma non riesco a capire come ottenerlo per non leggere un valore vuoto come NaN. Ecco dati campione e uscitaOttieni pandas.read_csv per leggere i valori vuoti come stringa vuota anziché nan
One,Two,Three
a,1,one
b,2,two
,3,three
d,4,nan
e,5,five
nan,6,
g,7,seven
>>> pandas.read_csv('test.csv', na_values={'One': [], "Three": []})
One Two Three
0 a 1 one
1 b 2 two
2 NaN 3 three
3 d 4 nan
4 e 5 five
5 nan 6 NaN
6 g 7 seven
Si legge correttamente "nan" come stringa "nan', ma legge ancora le celle vuote come NaN. Ho provato passando str
nell'argomento converters
a read_csv (con converters={'One': str})
), ma legge ancora le celle vuote come NaN.
Mi rendo conto che posso riempire i valori dopo aver letto, con fillna, ma non c'è davvero modo di dire ai panda che una cella vuota in una particolare colonna CSV dovrebbe essere letta come stringa vuota invece di NaN?
[Documentazione per 'DataFrame.fillna'.] (Http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html) Prova' result.fillna ('', inplace = True) '. Altrimenti crea una copia del dataframe. – osa
scusa per far risorgere una risposta così vecchia, ma è mai successo? Per quanto posso dire da [questo GitHub PR] (https: // github.com/pydata/pandas/pull/1522) è stato chiuso senza mai essere unito, e non vedo il comportamento richiesto nella versione panda 0.14.x – drammock
[Documentazione] (http://pandas.pydata.org/pandas- docs/stable/generated/pandas.read_csv.html) per read_csv ora offre sia 'na_values' (list o dict indicizzato da colonne) e' keep_default_na' (bool). Il valore 'keep_default_na' indica se i valori NA di default dei panda devono essere sostituiti o aggiunti. Il codice dell'OP non funziona al momento solo perché manca questo flag. Per questo esempio, potresti usare 'pandas.read_csv ('test.csv', na_values = ['nan'], keep_default_na = False)'. – delgadom