Generar gráficos con python: pandas y matplotlibs

Un DataFrame de pandas es una estructura de datos bidimensional, similar a una tabla de una hoja de cálculo o una base de datos, que organiza los datos en filas y columnas con etiquetas. Cada columna puede contener diferentes tipos de datos y tiene un índice (etiqueta) para las filas y otro para las columnas, lo que permite manipular datos de manera eficiente en análisis y ciencia de datos. 

Características principales

  • Estructura tabular: Se organiza en filas y columnas, como una hoja de cálculo de Excel. 
  • Bidimensional: Es una estructura de dos dimensiones (filas y columnas). 
  • Etiquetado: Tiene un índice para las filas y nombres para las columnas, permitiendo el acceso a los datos por etiqueta. 
  • Tipos de datos heterogéneos: Cada columna puede contener datos de diferentes tipos (por ejemplo, números, texto, etc.). 
  • Similar a diccionarios de Python: Cada columna es una “Series” de pandas, y el DataFrame se puede ver como un diccionario donde las claves son las columnas y los valores son las Series. 

A través de un DataFrame tenemos acceso a una serie de visualizaciones

 

Generar un DataFrame:

  • Leer una tabla de fichero:
import pandas as pd

df = pd.read_csv('data.csv') # df es un DataFrame
  • Generar un DataFrame a partir de listas
data = []

for i in range(5):

    # generate some random data to illustrate

    a, b, c, d, e = i, i**2, i+1, i*10, i/2

    data.append([a, b, c, d, e]) # data es una ‘lista de listas’. La lista anidada contiene 5 elementos

df = pd.DataFrame(data, columns=['a', 'b', 'c', 'd', 'e'])

print(df)
  • Generar un DataFrame a partir de un diccionario
data={'a':[1,2],'b':[4,6]}

df = pd.DataFrame(data)

 

Visualizar:

df.plot(kind= argument)

Tipos

 

Kind Function Typical Use
‘line’ df.plot.line() Trends, time series
‘bar’ df.plot.bar() Categorical comparisons
‘barh’ df.plot.barh() Horizontal bar chart
‘hist’ df.plot.hist() Distribution of values
‘box’ df.plot.box() Statistical summary (min, Q1, median, etc.)
‘kde’ / ‘density’ df.plot.kde() Smoothed density curve
‘area’ df.plot.area() Cumulative values or composition
‘pie’ df.plot.pie() Proportions of categories
‘scatter’ df.plot.scatter(x=’col1′, y=’col2′) Relationship between two variables
‘hexbin’ df.plot.hexbin(x=’col1′, y=’col2′, gridsize=25) Density of 2D points

 

import pandas as pd

import matplotlib.pyplot as plt

df.plot()

plt.show()

ax = df.plot()

plt.savefig("plot1.png")

plt.close()