Site is under maintenance mode. Please wait few min!
Saltar al contenido

Cómo configurar un servidor GraphQL en Node.js con Apollo Server y Sequelize

marzo 4, 2020

 Introducción paquete

El pitón pandas se utiliza para la manipulación de datos y análisis, diseñada para que pueda trabajar con datos etiquetados o relacionales de una manera más intuitiva.

incorporado en el paquete numpy, pandas incluye etiquetas descriptivas, índices, y es particularmente robusta en el manejo de formatos de datos comunes y los datos que faltan.

El pandas funcionalidad paquete de ofertas hoja de cálculo, pero trabajando con los datos es mucho más rápido con el pitón de lo que es una hoja de cálculo, y los pandas ha demostrado ser muy eficiente.

En este tutorial, lo primero que va a instalar pandas y luego a orientarse con las estructuras de datos fundamentales: Serie y tramas de datos .

Instalación de pandas

Al igual que con otros paquetes de Python, podemos instalar pandas con PIP.

En primer lugar, vamos a pasar a nuestro entorno de programación local o entorno de programación basado en el servidor de elección e instalar pandas, junto con sus dependencias ahí:

pip install pandas numpy python-dateutil pytz

  • pip instalar pandas numpy pitón-dateutil pytz

usted debe recibir una salida similar a la siguiente:

OutputSuccessfully installed pandas-0.19.2

Si prefiere instalar pandas dentro de Anaconda, puede hacerlo con el siguiente comando:

conda install pandas

  • CONDA instalar pandas

en este punto, ya está todo listo para comenzar a trabajar con el paquete de pandas .

Serie

En pandas, Serie son matrices unidimensionales que pueden contener cualquier tipo de datos. Las etiquetas de los ejes se denominan colectivamente como el índice .

Vamos a empezar el intérprete de Python en su línea de comandos, así:

python

  • pitón

Desde dentro del intérprete, importación, tanto los paquetes numpy y pandas en su espacio de nombres:

import numpy as np
import pandas as pd

  • numpy importación como np
  • pandas de importación como Pd

Antes de trabajar con la serie, vamos a echar un vistazo a lo que generalmente se parece a:

s = pd.Series([data], index=[index])

Usted puede notar que los datos se estructura como una lista de Python.

Sin Declarar un

Índice

Nos pondremos datos enteros de entrada y luego proporcionar un parámetro de nombre para la serie, pero vamos a evitar el uso del parámetro de índice para ver cómo pandas puebla implícitamente:

s = pd.Series([0, 1, 4, 9, 16, 25], name='Squares')

  • s = pd.Series ([0, 1, 4, 9, 16, 25], name = ‘plazas’)

Ahora, vamos a llamar a la serie para que podamos ver lo pandas hace con ella:

s

  • s

nos’ ll ver la siguiente salida, con el índice en la columna izquierda, los valores de los datos en la columna de la derecha. Por debajo de las columnas es información sobre el nombre de la serie y el tipo de datos que forman los valores.

Output0 0
1 1
2 4
3 9
4 16
5 25
Name: Squares, dtype: int64

A pesar de que no proporcionó un índice de la matriz, había un agregado implícita de los valores enteros de 0 a 5.

Declarar un

Índice

Como la sintaxis anterior nos muestra, también podemos hacer la serie con un índice explícito . Vamos a utilizar datos sobre la profundidad media en metros de los océanos de la Tierra:

avg_ocean_depth = pd.Series([1205, 3646, 3741, 4080, 3270], index=['Arctic', 'Atlantic', 'Indian', 'Pacific', 'Southern'])

  • avg_ocean_depth = pd.Series ([1205, 3646, 3741, 4080, 3270], índice = [ ‘Ártico’, ‘Atlantic’, ‘ India’, ‘Pacific’, ‘Sur)

con la serie construida, vamos a llamarlo para ver la salida:

avg_ocean_depth

  • avg_ocean_depth

OutputArctic 1205
Atlantic 3646
Indian 3741
Pacific 4080
Southern 3270
dtype: int64

podemos ver que el índice proporcionamos es a la izquierda con los valores de la derecha.

Indexación y rebanar Serie

con las pandas de la serie que puede indexar por número correspondiente para recuperar valores:

avg_ocean_depth[2]

  • avg_ocean_depth [2]

Output3741

Podemos también rebanada por número de índice para recuperar valores:

avg_ocean_depth[2:4]

  • avg_ocean_depth [ 2: 4]

OutputIndian 3741
Pacific 4080
dtype: int64

además, podemos llamar el valor del índice para devolver el valor que se corresponde con:

avg_ocean_depth['Indian']

  • avg_ocean_depth [ ‘indio

Output3741

también podemos rebanada con los valores de la índice para devolver los valores correspondientes:

avg_ocean_depth['Indian':'Southern']

  • avg_ocean_depth [ ‘india’: ‘Sur

OutputIndian 3741
Pacific 4080
Southern 3270
dtype: int64

en cuenta que en este último ejemplo al cortar con los nombres de índice son los dos parámetros inclusiva y no exclusiva. La salida de

Let el intérprete de Python con quit ().

Serie inicializado con Diccionarios

Con pandas también podemos utilizar el tipo de datos de diccionario para inicializar una serie. De esta manera, no vamos a declarar un índice como una lista separada, pero en lugar de utilizar el incorporado en las teclas como el índice.

vamos a crear un archivo llamado ocean.py y agregar el siguiente diccionario con una llamada a imprimirlo.

import numpy as np
import pandas as pd

avg_ocean_depth = pd.Series({
'Arctic': 1205,
'Atlantic': 3646,
'Indian': 3741,
'Pacific': 4080,
'Southern': 3270
})

print(avg_ocean_depth)

Ahora podemos ejecutar el archivo en la línea de comandos:

python ocean.py

  • pitón ocean.py

vamos a recibir la siguiente salida:

OutputArctic 1205
Atlantic 3646
Indian 3741
Pacific 4080
Southern 3270
dtype: int64

La serie se muestra de una manera organizada, con el índice (hecho de nuestras llaves) a la izquierda, y el conjunto de valores a la derecha.

Esto se comportará otros diccionarios de Python como en la que se puede acceder a los valores llamando la llave, que podemos hacerlo de esta manera:

...
print(avg_ocean_depth['Indian'])
print(avg_ocean_depth['Atlantic':'Indian'])
Output3741
Atlantic 3646
Indian 3741
dtype: int64

Sin embargo, estas series son ahora objetos de Python por lo que no será capaz de utilizar el diccionario funciones. diccionarios

Python proporcionan otra forma de configurar la serie de pandas.

tramas de datos

tramas de datos son estructuras de datos etiquetados de 2 dimensiones que tienen columnas que se pueden hacer de diferentes tipos de datos.

tramas de datos son similares a hojas de cálculo o tablas SQL. En general, cuando se está trabajando con los pandas, tramas de datos serán objeto más común que va a utilizar.

Para entender cómo los pandas trabaja trama de datos, vamos a configurar dos Series y luego pasan a los que en una trama de datos. La primera serie será nuestra avg_ocean_depth Serie de antes, y la segunda será max_ocean_depth que contiene los datos de la profundidad máxima de cada océano en la Tierra en metros.

import numpy as np
import pandas as pd

avg_ocean_depth = pd.Series({
'Arctic': 1205,
'Atlantic': 3646,
'Indian': 3741,
'Pacific': 4080,
'Southern': 3270
})

max_ocean_depth = pd.Series({
'Arctic': 5567,
'Atlantic': 8486,
'Indian': 7906,
'Pacific': 10803,
'Southern': 7075
})

Con los dos Series configurado, vamos a añadir la trama de datos al final del archivo, por debajo de la max_ocean_depth serie. En nuestro ejemplo, estas dos series tienen las mismas etiquetas de índice, pero si tuviera Series con diferentes etiquetas de los valores que faltan entonces sería etiquetado NaN.

Este se construye de tal manera que podamos incluir etiquetas de columna, que declaramos como claves para las variables de la serie. Para ver lo que les gusta la apariencia trama de datos, vamos a emitir una llamada para imprimirlo.

...
max_ocean_depth = pd.Series({
'Arctic': 5567,
'Atlantic': 8486,
'Indian': 7906,
'Pacific': 10803,
'Southern': 7075
})

ocean_depths = pd.DataFrame({
'Avg. Depth (m)': avg_ocean_depth,
'Max. Depth (m)': max_ocean_depth
})

print(ocean_depths) Output Avg. Depth (m) Max. Depth (m)
Arctic 1205 5567
Atlantic 3646 8486
Indian 3741 7906
Pacific 4080 10803
Southern 3270 7075

Los espectáculos de salida de nuestros dos encabezamientos de las columnas, junto con los datos numéricos en virtud de cada uno, y las etiquetas de las claves del diccionario están a la izquierda.

ordenar datos en tramas de datos

Nos puede ordenar los datos de la trama de datos mediante el uso de las DataFrame.sort_values ​​(por = …) función.

Por ejemplo, vamos a utilizar el parámetro booleano ascendente, que puede ser verdadera o falsa. Tenga en cuenta que ascendente es un parámetro que podemos pasar a la función, pero no es descendente.

...
print(ocean_depths.sort_values('Avg. Depth (m)', ascending=True))
Output Avg. Depth (m) Max. Depth (m)
Arctic 1205 5567
Southern 3270 7075
Atlantic 3646 8486
Indian 3741 7906
Pacific 4080 10803

Ahora, los espectáculos de salida los números ascendentes de valores bajos a altos valores en la columna de número entero más a la izquierda. Análisis estadístico

con tramas de datos

A continuación, Echemos un vistazo a algunas estadísticas de resumen que podemos deducir de pandas con la función DataFrame.describe ().

Sin pasar parámetros en particular, la función DataFrame.describe () proporcionará la siguiente información para los tipos de datos numéricos: de

Let tiene Python imprimir estos datos estadísticos para nosotros llamando nuestros ocean_depths trama de datos con la función describe ():

...
print(ocean_depths.describe())

cuando ejecutamos este programa, recibirá el siguiente resultado:

Output Avg. Depth (m) Max. Depth (m)
count 5.000000 5.000000
mean 3188.400000 7967.400000
std 1145.671113 1928.188347
min 1205.000000 5567.000000
25% 3270.000000 7075.000000
50% 3646.000000 7906.000000
75% 3741.000000 8486.000000
max 4080.000000 10803.000000

ahora puede comparar la salida de aquí a la trama de datos original y tener una mejor idea de la profundidad media y máxima de los océanos de la Tierra cuando se considera como un grupo.

Manipulación valores perdidos

A menudo, cuando se trabaja con datos, que tendrá los valores que faltan. El paquete de pandas ofrece muchas maneras diferentes para trabajar con los datos que faltan, que se refiere a datos nulos, o datos que no está presente por alguna razón. En pandas, esto se conoce como datos NA y se representa como NaN.

vamos a repasar dejando caer los valores perdidos por la función DataFrame.dropna () y rellenar los valores perdidos por la función DataFrame.fillna (). Esto asegurará que usted no tenga problemas a medida que está introducción. maquillaje de

dejar que un nuevo archivo llamado user_data.py y rellenarla con algunos datos que han valores perdidos y convertirla en una trama de datos:

import numpy as np
import pandas as pd

user_data = {'first_name': ['Sammy', 'Jesse', np.nan, 'Jamie'],
'last_name': ['Shark', 'Octopus', np.nan, 'Mantis shrimp'],
'online': [True, np.nan, False, True],
'followers': [987, 432, 321, np.nan]}

df = pd.DataFrame(user_data, columns = ['first_name', 'last_name', 'online', 'followers'])

print(df)

Nuestro llamado a imprimir nos muestra la siguiente salida cuando se ejecute el programa:

Output first_name last_name online followers
0 Sammy Shark True 987.0
1 Jesse Octopus NaN 432.0
2 NaN NaN False 321.0
3 Jamie Mantis shrimp True NaN

Hay un buen número de valores que faltan aquí. primera gota de

dejar que los valores perdidos con dropna ().

...
df_drop_missing = df.dropna()

print(df_drop_missing)

Dado que sólo hay una fila que no tiene valores que faltan en absoluto en nuestro conjunto de datos pequeño, que es la única fila que se mantiene intacta cuando se ejecute el programa:

Output first_name last_name online followers
0 Sammy Shark True 987.0

Como alternativa a dejar caer los valores, que puede en vez poblar los valores perdidos con un valor de nuestra elección, tales como 0. Esto vamos a lograr con DataFrame.fillna (0).

borrar o comentario a cabo las dos últimas líneas que hemos añadido a nuestro archivo y añada el siguiente:

...
df_fill = df.fillna(0)

print(df_fill)

Cuando ejecutamos el programa, vamos a recibir la siguiente salida:

Output first_name last_name online followers
0 Sammy Shark True 987.0
1 Jesse Octopus 0 432.0
2 0 0 False 321.0
3 Jamie Mantis shrimp True 0.0

Ahora todas nuestras columnas y filas están intactos y en lugar de tener NaN como nuestros valores ahora tenemos 0 llenar esos espacios. Se dará cuenta de que se utilizan flotadores cuando sea apropiado.

En este punto, puede ordenar los datos, hacer análisis estadístico, y manejar los valores que faltan en tramas de datos.

Conclusión

Este tutorial cubre información introductoria para el análisis de datos con pandas y Python 3. Ahora debe haber instalado los pandas, y puede trabajar con las estructuras de datos en serie y en tramas de datos dentro de los pandas.