Przetwarzanie danych we fragmentach (1)
Zdarza się, że źródła danych są tak duże, że wczytanie całego zbioru do pamięci jest zbyt zasobochłonne. W tym ćwiczeniu przetworzysz pierwszych 1000 wierszy pliku linia po linii, tworząc słownik z liczbą wystąpień każdego kraju w wybranej kolumnie zbioru danych.
Plik CSV 'world_dev_ind.csv' znajduje się w twoim bieżącym katalogu. Na początek musisz otworzyć połączenie z tym plikiem za pomocą menedżera kontekstu. Na przykład polecenie with open('datacamp.csv') as datacamp wiąże plik CSV 'datacamp.csv' z nazwą datacamp w menedżerze kontekstu. Instrukcja with pełni tu rolę menedżera kontekstu – jej zadaniem jest zapewnienie efektywnego zarządzania zasobami podczas otwierania połączenia z plikiem.
Jeśli chcesz dowiedzieć się więcej o menedżerach kontekstu, zajrzyj do kursu DataCamp poświęconego importowaniu danych w Pythonie.
To ćwiczenie jest częścią kursu
Zestaw narzędzi Pythona
Instrukcje do ćwiczenia
- Użyj
open(), aby powiązać plik CSV'world_dev_ind.csv'z nazwąfilew menedżerze kontekstu. - Uzupełnij pętlę
fortak, aby wykonała się dokładnie 1000 razy – przetworzy w ten sposób tylko pierwsze 1000 wierszy pliku.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Open a connection to the file
with ____ as ____:
# Skip the column names
file.readline()
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Process only the first 1000 rows
for j in ____:
# Split the current line into a list: line
line = file.readline().split(',')
# Get the value for the first column: first_col
first_col = line[0]
# If the column value is in the dict, increment its value
if first_col in counts_dict.keys():
counts_dict[first_col] += 1
# Else, add to the dict and set value to 1
else:
counts_dict[first_col] = 1
# Print the resulting dictionary
print(counts_dict)