Kom igångKom igång gratis

Anpassa din pandas-import

Paketet pandas hanterar många av de problem du stöter på när du importerar data som datavetare – till exempel kommentarer i platta filer, tomma rader och saknade värden (NA eller NaN). Som avslutning på det här kapitlet ska du importera en skadad kopia av Titanic-datasetet, titanic_corrupt.txt, som innehåller kommentarer efter tecknet '#' och är tabbavgränsad.

Viktiga argument för pd.read_csv():

  • sep anger förväntad avgränsare.
    • Använd ',' för kommaavgränsade filer.
    • Använd '\t' för tabbavgränsade filer.
  • comment tar emot tecken som markerar att resten av raden är en kommentar. All text som börjar med dessa tecken ignoreras.
  • na_values tar emot en lista med strängar som ska tolkas som NA/NaN. Vissa värden känns redan igen som NA/NaN som standard – det här argumentet lägger till fler.

Den här övningen är en del av kursen

Introduktion till dataimport i Python

Visa kurs

Övningsinstruktioner

  • Fyll i argumenten för pd.read_csv() för att importera titanic_corrupt.txt korrekt med pandas:
    • sep anger avgränsaren och fungerar på samma sätt som argumentet delimiter i np.loadtxt(). Notera att filen du importerar är tabbavgränsad.
    • comment tar emot tecken som markerar kommentarer i filen – i det här fallet '#'.
    • na_values tar emot en lista med strängar som ska behandlas som NA/NaN, i det här fallet strängen 'Nothing'.
  • Kör resten av koden för att skriva ut början av den resulterande DataFrame:n och rita ett histogram över 'Age' för passagerarna ombord på Titanic.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod