Bringing it all together (3)
In the previous exercise, you built on your function count_entries()
to add a try-except
block. This was so that users would get helpful messages when calling your count_entries()
function and providing a column name that isn't in the DataFrame. In this exercise, you'll instead raise a ValueError
in the case that the user provides a column name that isn't in the DataFrame.
Once again, for your convenience, pandas
has been imported as pd
and the 'tweets.csv'
file has been imported into the DataFrame tweets_df
. Parts of the code from your previous work are also provided.
This exercise is part of the course
Introduction to Functions in Python
Exercise instructions
- If
col_name
is not a column in the DataFramedf
, raise aValueError 'The DataFrame does not have a ' + col_name + ' column.'
. - Call your new function
count_entries()
to analyze the'lang'
column oftweets_df
. Store the result inresult1
. - Print
result1
. This has been done for you, so hit 'Submit Answer' to check out the result. In the next exercise, you'll see that it raises the necessaryValueErrors
.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# Define count_entries()
def count_entries(df, col_name='lang'):
"""Return a dictionary with counts of
occurrences as value for each key."""
# Raise a ValueError if col_name is NOT in DataFrame
if col_name not in df.columns:
____
# Initialize an empty dictionary: cols_count
cols_count = {}
# 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
____
# Print result1
print(result1)