pandas
Gotchas di panda
Ricerca…
Osservazioni
Gotcha in generale è un costrutto che è ben documentato, ma non intuitivo. I trucchi producono un output che normalmente non è previsto a causa del suo carattere controintuitivo.
Il pacchetto Pandas ha diversi trucchi, che possono confondere qualcuno, che non ne è a conoscenza, e alcuni di essi sono presentati in questa pagina di documentazione.
Rilevamento di valori mancanti con np.nan
Se vuoi rilevare le missioni con
df=pd.DataFrame({'col':[1,np.nan]})
df==np.nan
otterrai il seguente risultato:
col
0 False
1 False
Questo perché confrontando il valore mancante con qualcosa si ottiene un Falso, invece di questo dovresti usare
df=pd.DataFrame({'col':[1,np.nan]})
df.isnull()
che risulta in:
col
0 False
1 True
Integer e NA
I panda non supportano la mancanza negli attributi di tipo intero. Ad esempio, se hai delle missioni nella colonna dei voti:
df= pd.read_csv("data.csv", dtype={'grade': int})
error: Integer column has NA values
In questo caso devi solo usare float invece di numeri interi o impostare il tipo di oggetto.
Allineamento automatico dei dati (comportamento basato sull'indice)
Se vuoi aggiungere una serie di valori [1,2] alla colonna di dataframe df, otterrai NaN:
import pandas as pd
series=pd.Series([1,2])
df=pd.DataFrame(index=[3,4])
df['col']=series
df
col
3 NaN
4 NaN
perché l'impostazione di una nuova colonna allinea automaticamente i dati con l'indexe, ei tuoi valori 1 e 2 otterrebbero gli indici 0 e 1, e non 3 e 4 come nel tuo data frame:
df=pd.DataFrame(index=[1,2])
df['col']=series
df
col
1 2.0
2 NaN
Se vuoi ignorare l'indice, devi impostare i valori. Alla fine:
df['col']=series.values
col
3 1
4 2