pandas
Gotcha pand
Szukaj…
Uwagi
Ogólnie rzecz biorąc, Gotcha jest konstrukcją, która jest chociaż udokumentowana, ale nie intuicyjna. Gotchas generuje wyniki, których zwykle nie oczekuje się ze względu na jego sprzeczny z intuicją charakter.
Pakiet Pandas ma kilka gotch, które mogą pomylić kogoś, kto nie jest ich świadomy, a niektóre z nich są przedstawione na tej stronie dokumentacji.
Wykrywanie brakujących wartości za pomocą np.nan
Jeśli chcesz wykryć braki przy pomocy
df=pd.DataFrame({'col':[1,np.nan]})
df==np.nan
otrzymasz następujący wynik:
col
0 False
1 False
Wynika to z faktu, że porównanie brakującej wartości z czymkolwiek skutkuje False - zamiast tego powinieneś użyć
df=pd.DataFrame({'col':[1,np.nan]})
df.isnull()
Co skutkuje w:
col
0 False
1 True
Liczba całkowita i NA
Pandy nie obsługują brakujących atrybutów typu liczba całkowita. Na przykład jeśli masz braki w kolumnie oceny:
df= pd.read_csv("data.csv", dtype={'grade': int})
error: Integer column has NA values
W takim przypadku powinieneś po prostu użyć liczb zmiennoprzecinkowych zamiast liczb całkowitych lub ustawić obiekt dtype.
Automatyczne wyrównanie danych (zachowanie oczekiwane w indeksie)
Jeśli chcesz dołączyć serię wartości [1,2] do kolumny ramki danych df, otrzymasz NaNs:
import pandas as pd
series=pd.Series([1,2])
df=pd.DataFrame(index=[3,4])
df['col']=series
df
col
3 NaN
4 NaN
ponieważ ustawienie nowej kolumny automatycznie wyrównuje dane według indexe, a twoje wartości 1 i 2 uzyskałyby indeksy 0 i 1, a nie 3 i 4 jak w twojej ramce danych:
df=pd.DataFrame(index=[1,2])
df['col']=series
df
col
1 2.0
2 NaN
Jeśli chcesz zignorować indeks, powinieneś ustawić .values na końcu:
df['col']=series.values
col
3 1
4 2