Aan de slagGa gratis aan de slag

Informatie extraheren uit grote hoeveelheden Twitterdata

Goed gedaan met het opdelen van dat bestand in de vorige oefening. Je weet nu hoe je situaties aanpakt waarin je een heel groot bestand moet verwerken, en dat is een superhandige vaardigheid!

Het is fijn om een bestand in kleinere, beter beheersbare stukjes te kunnen verwerken, maar het kan nogal repetitief worden als je telkens dezelfde code moet schrijven voor dezelfde taak. In deze oefening maak je je code meer herbruikbaar door je werk uit de vorige oefening in een functiedefinitie te zetten.

Het pandas-pakket is geïmporteerd als pd en het bestand 'tweets.csv' staat in je huidige map klaar voor gebruik.

Deze oefening maakt deel uit van de cursus

Python-gereedschapskist

Cursus bekijken

Oefeninstructies

  • Definieer de functie count_entries() met 3 parameters. De eerste parameter is csv_file voor de bestandsnaam, de tweede is c_size voor de chunkgrootte en de laatste is colname voor de kolomnaam.
  • Iteer over het bestand in csv_file met een for-lus. Gebruik de lusvariabele chunk en itereer over de aanroep van pd.read_csv(), waarbij je c_size doorgeeft aan chunksize.
  • Iteer in de binnenste lus over de kolom die door colname wordt aangegeven in chunk met een for-lus. Gebruik de lusvariabele entry.
  • Roep de functie count_entries() aan en geef de bestandsnaam 'tweets.csv', de chunkgrootte 10 en de naam van de kolom om te tellen 'lang' door. Sla het resultaat van de aanroep op in de variabele result_counts.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren