Aan de slagGa gratis aan de slag

Alles samenbrengen (2)

Soms maken we fouten bij het aanroepen van functies — zelfs bij functies die je zelf hebt geschreven. Geen paniek! In deze oefening ga je verder bouwen op je eerdere werk met de functie count_entries() uit het vorige hoofdstuk door er een try-except-blok aan toe te voegen. Hierdoor kan je functie een nuttig bericht geven wanneer de gebruiker je count_entries()-functie aanroept maar een kolomnaam opgeeft die niet in de DataFrame staat.

Wederom is voor je gemak pandas 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

Cursus bekijken

Oefeninstructies

  • Voeg een try-blok toe zodat, wanneer de functie met de juiste argumenten wordt aangeroepen, deze de DataFrame verwerkt en een woordenboek met resultaten retourneert.
  • Voeg een except-blok toe zodat, wanneer de functie onjuist wordt aangeroepen, het volgende foutbericht wordt weergegeven: 'The DataFrame does not have a ' + col_name + ' column.'.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Define count_entries()
def count_entries(df, col_name='lang'):
    """Return a dictionary with counts of
    occurrences as value for each key."""

    # Initialize an empty dictionary: cols_count
    cols_count = {}

    # Add try block
    ____:
        # 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

    # Add except block
    ____:
        ____

# Call count_entries(): result1
result1 = count_entries(tweets_df, 'lang')

# Print result1
print(result1)
Code bewerken en uitvoeren