Extragerea informațiilor din volume mari de date Twitter
Felicitări pentru că ai împărțit fișierul în fragmente în exercițiul anterior! Acum știi cum să gestionezi situațiile în care trebuie să procesezi un fișier foarte mare – și aceasta este o abilitate extrem de utilă!
Este bine să știi cum să procesezi un fișier în fragmente mai mici și mai ușor de gestionat, însă rescrierea aceluiași cod de fiecare dată poate deveni obositoare. În acest exercițiu, vei face codul mai reutilizabil prin includerea lucrului din exercițiul anterior într-o definiție de funcție.
Pachetul pandas a fost importat ca pd, iar fișierul 'tweets.csv' se află în directorul tău curent.
Acest exercițiu face parte din cursul
Cutia cu instrumente Python
Instrucțiuni pentru exercițiu
- Definește funcția
count_entries(), care are 3 parametri. Primul parametru estecsv_filepentru numele fișierului, al doilea estec_sizepentru dimensiunea fragmentului, iar ultimul estecolnamepentru numele coloanei. - Iterează peste fișierul din
csv_filefolosind o buclăfor. Folosește variabila de buclăchunkși iterează peste apelul lapd.read_csv(), transmițândc_sizelachunksize. - În bucla interioară, iterează peste coloana specificată de
colnamedinchunkfolosind o buclăfor. Folosește variabila de buclăentry. - Apelează funcția
count_entries()transmițând numele fișierului'tweets.csv', dimensiunea fragmentelor10și numele coloanei de numărat,'lang'. Atribuie rezultatul apelului variabileiresult_counts.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Define count_entries()
def ____():
"""Return a dictionary with counts of
occurrences as value for each key."""
# Initialize an empty dictionary: counts_dict
counts_dict = {}
# Iterate over the file chunk by chunk
for ____ in ____:
# Iterate over the column in DataFrame
for ____ in ____:
if entry in counts_dict.keys():
counts_dict[entry] += 1
else:
counts_dict[entry] = 1
# Return counts_dict
return counts_dict
# Call count_entries(): result_counts
result_counts = ____
# Print result_counts
print(result_counts)