Visualización de datos con Pandas PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Visualización de datos con Pandas

Pandas nos ha estado ayudando hasta ahora en la fase de Preprocesamiento de datos. Aunque, en un caso, al crear histogramas, también utilizamos otro módulo de Pandas: plotting.

Lo hemos evitado a propósito hasta ahora, porque presentarlo antes generaría más preguntas que respuestas. A saber, pandas y Matplotlib era un dúo tan común y omnipresente que Pandas ha comenzado a integrar la funcionalidad de Matplotlib. Eso fuertemente se basa en Matplotlib para hacer cualquier trazado real, y encontrará muchas funciones de Matplotlib incluidas en el código fuente. Alternativamente, puede usar otros backends para trazar, como Plotly y Bokeh.

Sin embargo, Pandas también nos presenta un par de tramas que no está una parte de los tipos de gráficos estándar de Matplotlib, como KDE, curvas de andres, Parcelas de arranque y Matrices de dispersión.

La plot() funcion de un panda DataFrame utiliza el backend especificado por plotting.backend, y dependiendo del kind argumento: genera una trama utilizando la biblioteca dada. Dado que muchos de estos se superponen, no tiene sentido cubrir tipos de tramas como line, bar, hist y scatter. Producirán prácticamente los mismos gráficos con el mismo código que hemos estado haciendo hasta ahora con Matplotlib.

Sólo echaremos un breve vistazo a la plot() puesto que el mecanismo subyacente ha sido explorado hasta ahora. En cambio, centrémonos en algunas de las tramas que no se puede Ya lo hago fácilmente con Matplotlib.

Este será un capítulo muy corto, ya que las capacidades de trazado y visualización de Pandas palidecen en comparación con Matplotlib, pero aún así es útil conocer algunos de estos, así como ser consciente de la capacidad de trazar desde DataFrames directamente.

La trama de datos.plot() Función

La plot() la función acepta x y y características y un kind argumento. Alternativamente, para evitar la kind argumento, también puede llamar DataFrame.plot.kind() en su lugar, y pasar en el x y y características.

Los valores aceptados para el kind argumento son: line, bar, barh (barra horizontal), hist, box, kde, density (sinónimo de kde), area, pie, scatter y hexbin (similar a un mapa de calor).

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] df_eu.plot.bar(x = 'Year', y = 'Value')
df_eu.plot.line(x = 'Year', y = 'Value')
df_eu.plot.box(x='Value') plt.show()

En lugar de proporcionar el Series instancias como lo hacemos para Matplotlib - es suficiente para proporcionar el nombres de columna, y ya que estás llamando al plot() función en el DataFrame está visualizando, es fácil para Pandas asignar estos valores de cadena a los nombres de columna apropiados.

Cada una de estas llamadas hace una nueva Figure instancia y traza los valores apropiados en ella:

Visualización de datos con Pandas PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Para trazar varios ejes en el mismo Figure, puedes hacer un Figure y uno o más Axes vía plt.subplots() y asigne la correspondiente Axes En el correo electrónico “Su Cuenta de Usuario en su Nuevo Sistema XNUMXCX”. ax argumento de cada plot.plot_type() llamada:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] fig, ax = plt.subplots(3, 1) df_eu.plot.box(x='Value', ax = ax[0])
df_eu.plot.line(x = 'Year', y = 'Value', ax = ax[1])
df_eu.plot.bar(x = 'Year', y = 'Value', rot = 45, ax = ax[2]) plt.show()

Algunos de los argumentos estándar, como el rotation argumento son en realidad diferentes en el plot() llamadas Por ejemplo, rotation se acorta a rot. Esto hace que sea un poco complicado solo cambia entre Matplotlib y Pandas, ya que lo más probable es que termine en las páginas de documentación, solo verificando qué argumentos se pueden aplicar y cuáles no.

Ahora, en lugar de crear una nueva Figure or Axes instancia, cada una de estas parcelas estará estacionada en el lugar apropiado Axes instancias que les hemos proporcionado:

Visualización de datos con Pandas PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

En general, graficar con Pandas es conveniente y rápido, pero aún así, para graficar diagramas de barras, diagramas de líneas y diagramas de caja, probablemente querrá optar por Matplotlib. Es el motor subyacente que usa inevitablemente Pandas, y también tiene más opciones de personalización, y no tendrá que recordar un nuevo conjunto de argumentos que puede usar con las tramas de Pandas.

Dicho esto, para algunas parcelas, es posible que desee preferir pandas, ya que tendrían que hacerse manualmente en Matplotlib, y algunos de ellos son tan complicados de hacer que no vale la pena el esfuerzo, como las líneas de KDE.

pandas' esquematizar Módulo

¿ DataFrameLo que tenemos para ofrecer en términos de visualización no es demasiado nuevo para nosotros. Sin embargo, el módulo subyacente al que llaman, pandas.plotting hace. los plotting El módulo tiene varias funciones que podemos usar, como autocorrelation_plot(), bootstrap_plot()y scatter_matrix().

Cada uno de estos acepta un Series o un DataFrame, según el tipo de visualización que produzcan, así como ciertos parámetros para la especificación de gráficos y el estilo.

Diagrama de arranque

Bootstrapping es el proceso de muestrear aleatoriamente (con reemplazo) un conjunto de datos y calcular medidas de precisión como parcialidad, diferencia y intervalos de confianza para las muestras aleatorias. “Con reemplazo”, en términos prácticos, significa que cada elemento seleccionado al azar puede ser seleccionado nuevamente. Sin reemplazo significa que después de cada elemento seleccionado al azar, se elimina del grupo para la siguiente muestra.

A Diagrama de arranque, creado por Pandas, arranca las estadísticas medias, medianas y de rango medio de un conjunto de datos, en función de la muestra size, después de lo cual la trama se muestra posteriormente a través de plt.show(). Los argumentos predeterminados para size y samples en 50 y 500 respectivamente.

Esto significa que para una característica, muestreamos 50 valores. Luego, se genera una submuestra de 50 elementos (datos sintéticos) para esos 50 valores y se calcula una estadística de resumen (media/mediana/rango medio) para ellos. Este proceso se repite 500 veces, por lo que al final tenemos 500 estadísticas resumidas:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('./datasets/gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] pd.plotting.bootstrap_plot(df_eu['Value']) plt.show()

Visualización de datos con Pandas PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Gráfico de autocorrelación

Gráficos de autocorrelación se utilizan para verificar la aleatoriedad de los datos, para datos de series temporales. Múltiple autocorrelaciones se calculan para diferentes marcas de tiempo, y si los datos son realmente aleatorios, la correlación será cercana a cero. Si no, la correlación será mayor que cero.

Tracemos dos diagramas de autocorrelación, uno con nuestro Valor característica y otra con una Series lleno de valores aleatorios:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
# Filter DataFrame for the EU
df_eu = df.loc[df['Country Name'] == 'European Union']
# Generate 50 random integers between 0 and 100, and turn into a Series
random_series = pd.Series(np.random.randint(0, 100, size=50)) # Plot Autocorrelation Plot for the *Value* feature
pd.plotting.autocorrelation_plot(df_eu['Value'])
# Plot Autocorrelation Plot for the *random_series*
pd.plotting.autocorrelation_plot(random_series) plt.show()

La Gráfica de Autocorrelación para el random_series debería girar alrededor 0, ya que son datos aleatorios, mientras que la gráfica para el Value característica no:

Visualización de datos con Pandas PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Vale la pena señalar que la autocorrelación mide uno formulario de aleatoriedad, como datos no correlacionados, pero no aleatorios. Si no es aleatorio, pero no tiene correlaciones significativas, el diagrama de autocorrelación indicaría que los datos son aleatorios.

Matrices de dispersión

Matrices de dispersión trazar un cuadrícula de diagramas de dispersión para todas las características frente a todas las características. Dado que esto inevitablemente compara cada característica consigo misma, también: el diagonal donde esto sucede normalmente se reemplaza con un Histograma de esa característica, en lugar de un diagrama de dispersión. Matrices de dispersión también son conocidos como Parcelasy Seaborn ofrece una pairplot() función solo para esto.

La scatter_matrix() la función acepta un DataFrame y produce una matriz de dispersión para todas sus características numéricas, y devuelve una matriz 2D de Axes instancias que componen la matriz de dispersión. Para modificar cualquier cosa sobre ellos, querrá iterar a través de ellos:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('worldHappiness2019.csv') axes = pd.plotting.scatter_matrix(df, diagonal='hist') for ax in axes.flatten(): # Rotate back to 0 degrees since they're automatically rotated by 90 ax.yaxis.label.set_rotation(0) # As to not overlap with the Axes instances, set the ticklabel # alignment to 'right' ax.yaxis.label.set_ha('right') plt.show()

Esto da como resultado una matriz de dispersión bastante grande de todas las características frente a todas las demás características:

Visualización de datos con Pandas PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

También puede pasar en el diagonal argumento que acepta 'hist' or 'kde' para especificar qué tipo de gráfico de distribución le gustaría trazar en la diagonal, así como alpha, especificando la translucidez de los marcadores en los diagramas de dispersión.

Sello de tiempo:

Mas de Abuso de pila