Zacznij terazZacznij za darmo

Dostosowywanie importu w pandas

Biblioteka pandas świetnie radzi sobie z wieloma problemami, które napotkasz podczas importowania danych – takimi jak komentarze w plikach płaskich, puste wiersze czy brakujące wartości (NA lub NaN). Na zakończenie tego rozdziału zaimportujesz uszkodzoną kopię zbioru danych Titanic – plik titanic_corrupt.txt, który zawiera komentarze po znaku '#' i jest rozdzielany tabulatorem.

Najważniejsze argumenty funkcji pd.read_csv():

  • sep – określa oczekiwany separator.
    • Użyj ',' dla plików rozdzielanych przecinkiem.
    • Użyj '\t' dla plików rozdzielanych tabulatorem.
  • comment – przyjmuje znaki, po których w pliku występują komentarze; tekst zaczynający się od tych znaków będzie ignorowany.
  • na_values – przyjmuje listę ciągów znaków, które mają być traktowane jako NA/NaN. Domyślnie niektóre wartości są już rozpoznawane jako NA/NaN – ten argument pozwala dodać kolejne.

To ćwiczenie jest częścią kursu

Wprowadzenie do importowania danych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzupełnij argumenty funkcji pd.read_csv(), aby poprawnie zaimportować plik titanic_corrupt.txt za pomocą pandas:
    • sep – ustawia separator; działa tak samo jak argument delimiter w np.loadtxt(). Pamiętaj, że importowany plik jest rozdzielany tabulatorem.
    • comment – przyjmuje znaki, po których w pliku pojawiają się komentarze; w tym przypadku jest to '#'.
    • na_values – przyjmuje listę ciągów znaków, które mają być traktowane jako NA/NaN; tutaj jest to ciąg 'Nothing'.
  • Uruchom pozostałą część kodu, aby wyświetlić nagłówek wynikowego DataFrame i narysować histogram kolumny 'Age' z danymi pasażerów Titanica.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod