pandas
Gotcha's van panda's
Zoeken…
Opmerkingen
Gotcha is in het algemeen een constructie die weliswaar is gedocumenteerd, maar niet intuïtief. Gotcha's produceren een output die normaal niet wordt verwacht vanwege het contra-intuïtieve karakter.
Panda's pakket heeft verschillende gotcha's, die iemand kunnen verwarren die er niet van op de hoogte is, en sommige van hen worden gepresenteerd op deze documentatiepagina.
Ontbrekende waarden detecteren met np.nan
Als u missers wilt detecteren met
df=pd.DataFrame({'col':[1,np.nan]})
df==np.nan
u krijgt het volgende resultaat:
col
0 False
1 False
Dit komt omdat het vergelijken van ontbrekende waarde met iets resulteert in een False - in plaats hiervan moet u deze gebruiken
df=pd.DataFrame({'col':[1,np.nan]})
df.isnull()
wat resulteert in:
col
0 False
1 True
Integer en NA
Panda's ondersteunen geen ontbrekende attributen van het type integer. Als je bijvoorbeeld missers hebt in de cijferkolom:
df= pd.read_csv("data.csv", dtype={'grade': int})
error: Integer column has NA values
In dit geval moet u gewoon float gebruiken in plaats van gehele getallen of het object dtype instellen.
Automatische gegevensuitlijning (gedrag in de index)
Als u een reeks waarden [1,2] aan de kolom van dataframe df wilt toevoegen, krijgt u NaN's:
import pandas as pd
series=pd.Series([1,2])
df=pd.DataFrame(index=[3,4])
df['col']=series
df
col
3 NaN
4 NaN
omdat het instellen van een nieuwe kolom de gegevens automatisch uitlijnt door de index, en uw waarden 1 en 2 de indexen 0 en 1 zouden krijgen, en niet 3 en 4 zoals in uw gegevensframe:
df=pd.DataFrame(index=[1,2])
df['col']=series
df
col
1 2.0
2 NaN
Als u de index wilt negeren, moet u de .waarden aan het einde instellen:
df['col']=series.values
col
3 1
4 2