Alles samenbrengen (2)
Wow, je hebt zojuist je Twitter-taalanalyse uit het vorige hoofdstuk gegeneraliseerd door een standaardargument voor de kolomnaam toe te voegen. Je gaat deze functie nu nog een stap verder generaliseren door de gebruiker een flexibel argument te laten doorgeven, in dit geval: zoveel kolomnamen als de gebruiker wil!
Voor je gemak is pandas opnieuw geïmporteerd als pd en is het bestand 'tweets.csv' ingelezen in de DataFrame tweets_df. Delen van de code uit je eerdere werk zijn ook meegeleverd.
Deze oefening maakt deel uit van de cursus
Introductie tot functies in Python
Oefeninstructies
- Maak de functiedefinitie af door de parameter voor de DataFrame
dfen het flexibele argument*argstoe te voegen. - Maak de
for-lus binnen de functiedefinitie af zodat er over de tupleargsgeloopt wordt. - Roep
count_entries()aan met de DataFrametweets_dfen de kolomnaam'lang'. Sla het resultaat op inresult1. - Roep
count_entries()aan met de DataFrametweets_dfen de kolomnamen'lang'en'source'. Sla het resultaat op inresult2.
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: cols_count
cols_count = {}
# Iterate over column names in args
for col_name in ____:
# Extract column from DataFrame: col
col = df[col_name]
# Iterate over the column in DataFrame
for entry in col:
# If entry is in cols_count, add 1
if entry in cols_count.keys():
cols_count[entry] += 1
# Else add the entry to cols_count, set the value to 1
else:
cols_count[entry] = 1
# Return the cols_count dictionary
return cols_count
# Call count_entries(): result1
result1 = count_entries(____, ____)
# Call count_entries(): result2
result2 = count_entries(____, ____, ____)
# Print result1 and result2
print(result1)
print(result2)