ComenzarEmpieza gratis

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

Ver curso

Instrucciones de ejercicio

  • Define la función count_entries(), que tiene 3 parámetros. El primer parámetro es csv_file para el nombre de archivo, el segundo es c_size para el tamaño de fragmento y el último es colname para el nombre de columna.
  • Itera sobre el archivo en el archivo csv_file utilizando un bucle for. Utiliza la variable de bucle chunk e itera sobre la llamada a pd.read_csv(), pasando c_size a chunksize.
  • En el bucle interior, itera sobre la columna dada por colname en chunk utilizando un bucle for. Utiliza la variable de bucle entry.
  • Llama a la función count_entries() pasándole el nombre de archivo 'tweets.csv', el tamaño de fragmentos 10 y el nombre de la columna que se debe contar, 'lang'. Asigna el resultado de la llamada a la variable result_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)
Editar y ejecutar código