Aspectos básicos de la ciencia de datos Una guía para principiantes sobre la visualización de datos de Pandas

Ya sea que esté aprendiendo sobre un conjunto de datos o preparándose para publicar resultados de análisis relevantes, la visualización es una herramienta esencial. Pandas, la popular biblioteca de análisis de datos de Python, ofrece varias opciones diferentes para usar **.plot()** Incluso si se encuentra en las etapas iniciales de su viaje con Pandas, puede crear rápidamente diagramas básicos que brinden información valiosa sobre su opinión de datos.
inserte la descripción de la imagen aquí

preparación de datos

Datos principales de la universidad utilizando la muestra de microdatos de uso público de la Encuesta sobre la comunidad estadounidense 2010-2012

import pandas as pd
df = pd.read_csv(
    "数据科学必备 Pandas 数据可视化初学者指南/recent-grads.csv",
)
df.head()

inserte la descripción de la imagen aquí

Crear parcelas Pandas

El conjunto de datos contiene algunas columnas relacionadas con los ingresos de los graduados de cada carrera:

  • "Mediana" es el ingreso medio de los trabajadores de tiempo completo durante todo el año.
  • "P25th" es el percentil 25 de ingresos.
  • "P75th" es el percentil 75 de ingresos.
  • "Rango" es una clasificación profesional por ingresos medios.

.plot() devuelve un gráfico de líneas con datos para cada fila en el DataFrame. Los valores del eje x representan el rango de cada institución, y los valores 'P25th', 'Median' y 'P75th' se trazan en el eje y.

import matplotlib.pyplot as plt
df.plot(x="Rank", y=["P25th", "Median", "P75th"])
plt.show()

inserte la descripción de la imagen aquí
La información relevante se puede obtener de forma intuitiva.

  • El ingreso medio cae a medida que desciende la clasificación. Eso es de esperar, ya que las clasificaciones están determinadas por el ingreso medio.
  • Algunas carreras tienen una amplia brecha entre 25% y 75%. Aquellos con estos títulos pueden ganar mucho menos o mucho más que el ingreso medio.
  • La brecha entre el 25% y el 75% para otras carreras es muy pequeña. Los salarios de quienes tienen estos títulos están muy cerca del ingreso medio.

.plot() tiene varios parámetros opcionales. El parámetro kind acepta 11 valores de cadena diferentes y determina qué tipo de trama creará:

  1. "área" se utiliza para gráficos de área .
  2. "barra" se utiliza para gráficos de barras verticales .
  3. "barh" se utiliza para gráficos de barras horizontales .
  4. "box" se usa para diagramas de caja .
  5. "hexbin" se usa para diagramas hexagonales .
  6. "hist" se utiliza para histogramas .
  7. "kde" se utiliza para gráficos de estimación de densidad del núcleo .
  8. "densidad" es un alias de "kde" .
  9. "línea" se utiliza para gráficos de líneas .
  10. "pastel" se utiliza para gráficos circulares .
  11. "dispersión" se utiliza para diagramas de dispersión .

Inmersión profunda en Matplotlib

Al llamar a **.plot()** en un objeto DataFrame, Matplotlib crea la trama entre bastidores.

Primero importe el módulo matplotlib.pyplot y cámbiele el nombre a plt. Luego llame a .plot() y pase la columna "Rank" del objeto DataFrame como primer parámetro y la columna "P75th" como segundo parámetro.

import matplotlib.pyplot as plt

plt.plot(df["Rank"], df["P75th"])
[<matplotlib.lines.Line2D at 0x7f859928fbb0>]

Dibuje un gráfico lineal, polilínea de relación de coordenadas bidimensional df["Rank"] y df["P75th"].
inserte la descripción de la imagen aquí
Un DataFrame puede crear exactamente el mismo gráfico utilizando el método .plot() del objeto.

df.plot(x="Rank", y="P75th")
<AxesSubplot:xlabel='Rank'>

inserte la descripción de la imagen aquí

Descripción e inspección de datos

Distribuciones e Histogramas

DataFrame no es la única clase en pandas con un método .plot(), los objetos Series brindan una funcionalidad similar. Puede tratar cada columna del DataFrame como un objeto Serie.

Un ejemplo de cómo crear un histograma utilizando la columna "Mediana" de un DataFrame creado a partir de datos de carreras universitarias.

median_column = df["Median"]

type(median_column)
pandas.core.series.Series

median_column.plot(kind="hist")
<AxesSubplot:ylabel='Frequency'>

inserte la descripción de la imagen aquí
El histograma muestra los datos divididos en 10 intervalos que van desde $20 000 a $120 000, cada uno con un ancho de $10 000. La forma del histograma es diferente de la distribución normal, que tiene una forma de campana simétrica con un pico en el medio.

Detección de valores atípicos

Los valores atípicos se refieren a puntos de muestra donde algunos valores de la muestra se desvían significativamente del resto, por lo que también se denominan valores atípicos. El análisis de valores atípicos es encontrar estos valores atípicos y luego analizarlos.

Pregunta: Si bien el ranking profesional no es muy alto, también puede obtener un salario correspondientemente mayor ¿Cómo se deben detectar estos datos?

Dichos valores atípicos se pueden detectar mediante un histograma.

Cree un nuevo DataFrame llamado top_5.

top_5 = df.sort_values(by="Median", ascending=False).head(5)

Crea un gráfico de barras para limitar los salarios de estas 5 carreras.

top_5.plot(x="Major", y="Median", kind="bar", rot=5, fontsize=4)
<AxesSubplot:xlabel='Major'>

inserte la descripción de la imagen aquí
Se encontró que el salario medio para las carreras de ingeniería petrolera era más de $ 20,000 más alto que el de otras carreras. Las ganancias de los mayores del segundo al cuarto lugar son relativamente cercanas.

Si un punto de datos tiene un valor mucho más alto o más bajo que los demás, es posible que se requiera una mayor investigación. Por ejemplo, puede ver columnas que contienen datos relacionados.

Una encuesta de todas las carreras con un salario promedio de más de $60,000 muestra tres columnas de ingresos.

top_medians = df[df["Median"] > 60000].sort_values("Median")

In [18]: top_medians.plot(x="Major", y=["P25th", "Median", "P75th"], kind="bar")
Out[18]: <AxesSubplot:xlabel='Major'>

inserte la descripción de la imagen aquí

Los percentiles 25 y 75 confirman lo que se ha visto anteriormente: las carreras de ingeniería petrolera son, con mucho, los recién graduados con mayores ingresos.

Comprobar dependencias

A menudo, desea ver si dos columnas de un conjunto de datos están relacionadas. Si elijo una especialidad con un ingreso medio más alto, ¿existe una menor probabilidad de desempleo?

Cree un diagrama de dispersión con "Mediana" y "Tasa_de_desempleo".

df.plot(x="Median", y="Unemployment_rate", kind="scatter")

inserte la descripción de la imagen aquí
No parece haber un patrón obvio y no existe una correlación significativa entre los ingresos y el desempleo.

Si bien un diagrama de dispersión es una excelente herramienta para obtener una primera impresión sobre las posibles correlaciones, ciertamente no es una evidencia clara de una conexión. Para comprender la correlación entre diferentes columnas, puede usar .corr() Si sospecha que hay una correlación entre dos valores, hay varias herramientas que puede usar para verificar su corazonada y medir qué tan fuerte es la correlación.

Para obtener más información, consulte los tres métodos de operación y los detalles de visualización del análisis de correlación de datos necesarios para la ciencia de datos.

Pero tenga en cuenta que aunque exista una correlación entre dos valores, no significa que un cambio en uno provoque un cambio en el otro. En otras palabras, correlación no implica causalidad.

Analizar datos categóricos

Para procesar grandes cantidades de información, el cerebro humano categoriza los datos, tanto consciente como inconscientemente. Esta técnica suele ser útil, pero está lejos de ser perfecta. A veces ponemos cosas en una categoría que, tras una inspección más detallada, no son tan similares. Por lo tanto, debe conocer algunas herramientas para verificar categorías y verificar si una clasificación determinada tiene sentido.

agrupamiento

El uso básico de las categorías es la agrupación y la agregación. La popularidad de cada categoría en el conjunto de datos de carreras universitarias se puede determinar usando .groupby() .

cat_totals = df.groupby("Major_category")["Total"].sum().sort_values()
cat_totals

Major_category
Interdisciplinary                        12296.0
Agriculture & Natural Resources          75620.0
Law & Public Policy                     179107.0
Physical Sciences                       185479.0
Industrial Arts & Consumer Services     229792.0
Computers & Mathematics                 299008.0
Arts                                    357130.0
Communications & Journalism             392601.0
Biology & Life Science                  453862.0
Health                                  463230.0
Psychology & Social Work                481007.0
Social Science                          529966.0
Engineering                             537583.0
Education                               559129.0
Humanities & Liberal Arts               713468.0
Business                               1302376.0
Name: Total, dtype: float64

Trace un gráfico de barras horizontales que muestre los totales de todas las categorías en cat_totals.

cat_totals.plot(kind="barh", fontsize=4)
<AxesSubplot:ylabel='Major_category'>

inserte la descripción de la imagen aquí

relación

Para ver las diferencias entre categorías, los gráficos de barras verticales y horizontales suelen ser una buena opción. Si está interesado en las proporciones, un gráfico circular es una gran herramienta.

Combine todas las categorías con un total de menos de 100,000 en una categoría llamada "Otros" y cree un gráfico circular.

small_cat_totals = cat_totals[cat_totals < 100_000]
big_cat_totals = cat_totals[cat_totals > 100_000]

small_sums = pd.Series([small_cat_totals.sum()], index=["Other"])
big_cat_totals = big_cat_totals.append(small_sums)

big_cat_totals.plot(kind="pie", label="")
<AxesSubplot:>

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_20288327/article/details/124241111
Recomendado
Clasificación