Extracción de información en grandes cantidades de datos de Twitter
Buen trabajo fragmentando ese archivo en el ejercicio anterior. Ahora sabes cómo enfrentarte a situaciones en las que tienes que procesar un archivo muy grande, y esa es una competencia muy útil.
Es bueno saber cómo procesar un archivo en fragmentos más pequeños y manejables, pero puede llegar a ser muy tedioso tener que escribir y volver a escribir cada vez el mismo código para la misma tarea. En este ejercicio, harás tu código más reutilizable poniendo tu trabajo del último ejercicio en una definición de función.
El paquete pandas se ha importado como pd
y el archivo 'tweets.csv'
está en tu directorio actual para que lo utilices.
Este ejercicio forma parte del curso
Caja de herramientas Python
Instrucciones de ejercicio
- Define la función
count_entries()
, que tiene 3 parámetros. El primer parámetro escsv_file
para el nombre de archivo, el segundo esc_size
para el tamaño de fragmento y el último escolname
para el nombre de columna. - Itera sobre el archivo en el archivo
csv_file
utilizando un buclefor
. Utiliza la variable de buclechunk
e itera sobre la llamada apd.read_csv()
, pasandoc_size
achunksize
. - En el bucle interior, itera sobre la columna dada por
colname
enchunk
utilizando un buclefor
. Utiliza la variable de bucleentry
. - Llama a la función
count_entries()
pasándole el nombre de archivo'tweets.csv'
, el tamaño de fragmentos10
y el nombre de la columna que se debe contar,'lang'
. Asigna el resultado de la llamada a la variableresult_counts
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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)