Temas vistos en los ejercicios de esta semana:
- Pandas
A partir del archivo arbolado-en-espacios-verdes.csv
a) Hacer un código que cree una lista con las alturas de los arboles (columna 'altura_tot') de una determinada especie (por ejemplo, probar con 'Jacarandá' de la columna 'nombre_com').
b) ¿Cuántos especios verdes diferentes podemos encontrar en CABA?
c) Crear un DataFrame que contenga solo los Ceibos del parque 'CENTENARIO'. Reajustá los índices del mismo.
- read file
- list from df with condition
- unique()
- new df from original with 2 conditions
A partir de una lista de alumnos, generar una lista de notas del 1 al 10 y crear un Dataframe con alumnos y notas.
Luego, pasar los nombres a minúsculas.
alumnos = ['Carla', 'Daniel', 'Fernan', 'Ivan']
- list to dataframe
- map()
- lambda
a) Cargá el contenido del archivo 'portafolio_juan.csv' en un DataFrame de pandas. Llamalo portafolio.
b) Agregale a portafolio dos columnas nuevas, 'costo_compra' y 'valor_actual', que contengan el costo total de la compra de las acciones de cada fila, y su valor actual. (Recordá que podés operar entre columnas del dataframe (Series) como con arrays de numpy).
c) Calculá lo que pedía el segundo inciso del ejercicio original (el costo de compra de todas las acciones, el valor actual y la diferencia). ¡Ahora lo podés hacer con por ejemplo con portafolio['costo_compra'].sum(), etc.!
d) Carga el archivo 'cer-uva-uvi-diarios.csv' en otro dataframe, llamalo df_uvas. Vas a notar que a las fechas las toma por defecto como cadenas. Para convertir la columna a formato datetime usá el método to_datetime() especificando correctamente el formato en que están las fechas. En este caso:
pd.to_datetime(df_uvas['indice_tiempo'], format='%Y-%m-%d')
e) Ahora que las fechas funcionan como fechas, es posible graficar las variables en función del tiempo. Graficá el valor del 'cer_diario' en función del tiempo. ¿Conocés alguna función matemática que se vea similar?
- adding column
- operations between cols
- pd.to_datetime()
- plot()
Leer el archivo de datos llamado estaciones_metereologicas.csv como un un dataframe de Pandas. A partir de este vamos a:
- Mostrar las primeras filas del dataframe.
- Mostrar el número total de filas y columnas.
- Calcular la media, desviación estándar, valor mínimo y valor máximo de la columna 'altura'.
- min(), max(), std() == standard desviation, mean()
Dados las siguientes estructuras:
mi_lista = list('abcdefghijklmnopqrstuvwxyz')
mi_array = np.arange(26)
mi_diccionario = dict(zip(mi_lista,mi_array))
- Crear una serie pandas para cada una de ellas, llamadas serLis, serArr y serDic.
- Convertir la serie 'serDic' en un dataframe con su índice como otra columna en el dataframe.
- Combine 'serLis' y 'serArr' para formar un dataframe.
- Exporte el dataframe creado en el punto anterior a un archivo "serDic.csv" que quede grabado en la ruta: /content/drive/MyDrive/Colab Notebooks/Data/ (o en alguna equivalente si está trabajando en su propia computadora).
- list, dic and array to Series --> pd.Series()
- dictionary and lists to DataFrame --> pd.DataFrame()
- export df --> df.to_csv()
Un conjunto de datos (dataset) muy usado para ejercitar Pandas es el archivo titanic.csv, que contiene información sobre los pasajeros del Titanic, con la descripción de las variables que se puede encontrar aquí. Para este dataset hacer un programa que:
- Carge los datos en un DataFrame y explorarlos
- Muestre en pantalla las dimensiones, el número de datos que contiene y que muestre los tipos de datos de cada columna.
- Muestre en pantalla los datos del pasajero con identificador 148.
- Encuentre los nombres de las personas que iban en primera clase y los muestre ordenados alfabéticamente.
- Elimine del DataFrame los pasajeros/as con edad desconocida.
- Determine la edad media de las mujeres que viajaban en la clase 1.
- Haga un histograma de la distribución de edades de los sobrevivientes sin distinguir el genero.
- Series from df with wultiple conditions
- order Series alphabetically
- histogram
Vamos a trabajar con un nuevo dataset, el del archivo "Spotify 2010 - 2019 Top 100.csv", extraído de aquí, que contiene información de las canciones más escuchadas cada año en la plataforma de streaming Spotify.
- Explorar el dataset (mirar cuántos líneas hay, qué campos tiene, de que tipo son, etc.)
- Mostrar los 10 artistas con más canciones a lo largo de todos los años y los 10 géneros más frecuentes.
- Buscar cuáles son las canciones con tempos (bpm, pulsaciones por minuto) más elevados. (Sugerencia: investigar en la documentación de pandas sobre el método sort_values())
- Crear un nuevo DataFrame con los datos de ritmo (bpm) y duración (dur) promedio para cada año. (Sugerencia: es simple de hacerlo con el método groupby())
- A partir del DataFrame del inciso anterior, haga gráficos de la evolución de la duración y el ritmo promedio a lo largo de los años.
- (Opcional) Investigue cómo hacer gráficos de torta en pandas y haga uno que muestre la proporción de los distintos tipos de artista ('artist type') de todo el dataset.
Esta vez vamos a trabajar con los datos de los casos confirmados de Covid en la provincia de Santa Fe, que están en el archivo 'casos_covid_confirmados_santafe.csv'. Los mismos fueron obtenidos reduciendo el dataset oficial de los casos de covid en todo el país. (Advertencia: el archivo pesa unos 85 MB)
- Cargue los contenidos del csv en un DataFrame de Pandas y explore el dataset. En particular, pedimos reportar cuántos registros contiene y qué columnas tiene. ¿Cuáles son todos los valores posibles de la columna "clasificacion"?
- Calcular cuánta gente de Santa Fe falleció por covid. ¿Qué porcentaje de los casos totales terminaron en muertes (o sea, cuál es la mortalidad)?
- Calcule cuántos casos y muertes hubo en cada departamento de la provincia de Santa Fe.
- Haga un histograma de edades de los casos confirmados. Ojo, hay que descartar primero los que tienen la edad contada en meses (mire la columna "edad_años_meses"). Haga también un segundo histograma de edades solo de los fallecidos. (Sí, en el dataset hay alguien que figura que tiene 222 años... esos errores pasan. Se puede intentar filtrar esos casos para que no molesten en el histograma.)
- Haga el gráfico de casos diarios de covid. Para eso utilizá la columna "fecha_apertura".