Extrahieren von Informationen für große Mengen von Twitter-Daten
Du hast die Datei in der letzten Aufgabe gut in Blöcke aufgeteilt. Du weißt jetzt, wie du mit Situationen umgehst, in denen du eine sehr große Datei verarbeiten musst, und das ist eine sehr nützliche Fähigkeit!
Es ist gut zu wissen, wie man eine Datei in kleinen, überschaubaren Blöcken verarbeitet, aber es kann sehr mühsam sein, den gleichen Code für die gleiche Aufgabe immer wieder neu zu schreiben und zu formulieren. In dieser Aufgabe wirst du deinen Code wiederverwendbar machen, indem du deine Arbeit aus der letzten Aufgabe in eine Funktionsdefinition einbaust.
Das pandas-Paket wurde als pd
importiert und die Datei 'tweets.csv'
liegt in deinem aktuellen Verzeichnis für dich bereit.
Diese Übung ist Teil des Kurses
Python Toolbox
Anleitung zur Übung
- Definiere die Funktion
count_entries()
, die drei Parameter hat. Der erste Parameter istcsv_file
für den Dateinamen, der zweite istc_size
für die Größe des Blocks und der letzte istcolname
für den Spaltennamen. - Iteriere mit Hilfe einer
for
-Schleife über die Datei incsv_file
. Verwende die Schleifenvariablechunk
, iteriere über den Aufruf vonpd.read_csv()
und übergibc_size
anchunksize
. - In der inneren Schleife iterierst du über die Spalte, die durch
colname
inchunk
angegeben ist, indem du einefor
-Schleife verwendest. Verwende die Schleifenvariableentry
. - Rufe die Funktion
count_entries()
auf, indem du ihr den Dateinamen'tweets.csv'
, die Größe der Blöcke10
und den Namen der zu zählenden Spalte,'lang'
, übergibst. Weise das Ergebnis des Aufrufs der Variablenresult_counts
zu.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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)