Je pandas-import aanpassen
Het pandas-pakket is uitstekend in het omgaan met veel van de problemen die je als data scientist tegenkomt bij het importeren van data, zoals commentaarregels in flat files, lege regels en ontbrekende waarden (NA of NaN). Ter afsluiting van dit hoofdstuk ga je een beschadigde kopie van de Titanic-gegevensset titanic_corrupt.txt importeren, die commentaar bevat na het teken '#', en tab-gescheiden is.
Belangrijke argumenten voor pd.read_csv() zijn onder andere:
sepstelt het verwachte scheidingsteken in.- Je kunt
','gebruiken voor komma-gescheiden. - Je kunt
'\t'gebruiken voor tab-gescheiden.
- Je kunt
commentneemt tekens op waarna commentaar in het bestand voorkomt; alle tekst die met deze tekens begint, wordt genegeerd.na_valuesneemt een lijst met strings die alsNA/NaNmoeten worden herkend. Standaard worden sommige waarden al alsNA/NaNherkend. Met dit argument geef je extra waarden op.
Deze oefening maakt deel uit van de cursus
Introductie tot data importeren in Python
Oefeninstructies
- Vul de argumenten van
pd.read_csv()aan omtitanic_corrupt.txtcorrect te importeren met pandas:sepstelt het te gebruiken scheidingsteken in en werkt hetzelfde als het argumentdelimitervannp.loadtxt(). Let op: het bestand dat je importeert is tab-gescheiden.commentneemt tekens op waarna commentaar in het bestand voorkomt; in dit geval is dat'#'.na_valuesneemt een lijst met strings die alsNA/NaNworden behandeld; in dit geval de string'Nothing'.
- Voer de rest van de code uit om de kop van de resulterende DataFrame te printen en het histogram te plotten van de
'Age'van passagiers aan boord van de Titanic.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
# Assign filename: file
file = 'titanic_corrupt.txt'
# Import file: data
data = pd.read_csv(file, sep='____', comment='____', na_values=[____])
# Print the head of the DataFrame
print(data.head())
# Plot 'Age' variable in a histogram
pd.DataFrame.hist(data[['Age']])
plt.xlabel('Age (years)')
plt.ylabel('count')
plt.show()