Python Tutorial de Pandas: marco de datos, rango de fechas, uso de Pandas

ยฟQuรฉ son los pandas? Python?

pandas es una biblioteca de cรณdigo abierto que le permite realizar manipulaciรณn y anรกlisis de datos en Python. pandas Python La biblioteca ofrece manipulaciรณn de datos y operaciones de datos para tablas numรฉricas y series temporales. Pandas proporciona una forma sencilla de crear, manipular y organizar los datos. Estรก construida sobre NumPy, lo que significa que necesita NumPy para funcionar.

ยฟPor quรฉ utilizar Pandas?

Los cientรญficos de datos utilizan Pandas en Python por sus siguientes ventajas:

  • Maneja fรกcilmente los datos faltantes
  • Utiliza Serie para estructura de datos unidimensional. y DataFrame para estructura de datos multidimensional
  • Proporciona una manera eficiente de dividir los datos.
  • Proporciona una forma flexible de fusionar, concatenar o remodelar los datos.
  • Incluye una potente herramienta de series temporales con la que trabajar.

En pocas palabras, Pandas es una biblioteca รบtil en anรกlisis de los datosSe puede utilizar para realizar anรกlisis y manipulaciรณn de datos. Pandas proporciona estructuras de datos potentes y fรกciles de usar, asรญ como los medios para realizar operaciones rรกpidamente en estas estructuras.

ยฟCรณmo instalar Pandas?

Ahora en esto Python Tutorial de Pandas, aprenderemos cรณmo instalar Pandas en Python.

Para instalar la biblioteca Pandas, consulte nuestro tutorial Cรณmo instalar TensorFlow. Pandas estรก instalado por defecto. En caso remoto, los pandas no estรกn instalados.

Puedes instalar Pandas usando:

  • Anaconda: conda instalar -c anaconda pandas
  • In Jupyter Computadora portรกtil :
import sys
!conda install --yes --prefix {sys.prefix} pandas

ยฟQuรฉ es un marco de datos de Pandas?

Marco de datos de pandas es una matriz bidimensional con una estructura de datos etiquetada que tiene diferentes tipos de columnas. Un DataFrame es una forma estรกndar de almacenar datos en formato tabular, con filas para almacenar la informaciรณn y columnas para nombrar la informaciรณn. Por ejemplo, el precio puede ser el nombre de una columna y 2,3,4 pueden ser los valores del precio.

Data Frame es bien conocido por los estadรญsticos y otros profesionales de datos.

Debajo de una imagen de un marco de datos de Pandas:

Marco de datos de pandas

ยฟQuรฉ es una serie?

Una serie es una estructura de datos unidimensional. Puede tener cualquier estructura de datos como entero, flotante y cadena. Es รบtil cuando desea realizar cรกlculos o devolver una matriz unidimensional. Una serie, por definiciรณn, no puede tener varias columnas. Para el รบltimo caso, utilice la estructura del marco de datos.

Python La serie Pandas tiene los siguientes parรกmetros:

  • Datos: puede ser una lista, un diccionario o un valor escalar
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Puede agregar el รญndice con index. Ayuda a nombrar las filas. La longitud debe ser igual al tamaรฑo de la columna.

pd.Series([1., 2., 3.], index=['a', 'b', 'c'])

A continuaciรณn, crea una serie de Pandas a la que le falta un valor para la tercera fila. Tenga en cuenta que faltan valores en Python se indican como "NaN". Puedes usar numpy para crear valor faltante: np.nan artificialmente

pd.Series([1,2,np.nan])

Salida

0    1.0
1    2.0
2    NaN
dtype: float64

Crear marco de datos de Pandas

Ahora, en este tutorial de Pandas DataFrame, aprenderemos cรณmo crear Python Marco de datos de Pandas:

Puede convertir una matriz numpy en un marco de datos de pandas con pd.Data frame(). Tambiรฉn es posible lo contrario. Para convertir un marco de datos de pandas en una matriz, puede usar np.array()

## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]] 
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)

## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame:    0  1
0  1  2
1  3  4
Numpy array: [[1 2]
 [3 4]]

Tambiรฉn puedes usar un diccionario para crear un marco de datos de Pandas.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
Edad Nombre
0 30 Juan
1 40 Smith

Datos de distribuciรณn de pandas

Pandas tiene una API conveniente para crear un rango de fechas. aprendamos con Python Ejemplos de pandas:

pd.data_range(fecha,perรญodo,frecuencia):

  • El primer parรกmetro es la fecha de inicio.
  • El segundo parรกmetro es el nรบmero de perรญodos (opcional si se especifica la fecha de finalizaciรณn)
  • El รบltimo parรกmetro es la frecuencia: dรญa: 'D', mes: 'M' y aรฑo: 'Y'.
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

Salida

Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)

Salida

Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')

Inspeccionar datos

Puede verificar el principio o el final del conjunto de datos con head() o tail() precedido por el nombre del marco de datos del panda como se muestra en el siguiente ejemplo de Pandas:

Paso 1) Crea una secuencia aleatoria con numpy. La secuencia tiene 4 columnas y 6 filas.

random = np.random.randn(6,4)

Paso 2) Luego creas un marco de datos usando pandas.

Utilice fechas_m como รญndice para el marco de datos. Significa que a cada fila se le darรก un "nombre" o un รญndice, correspondiente a una fecha.

Finalmente le das un nombre a las 4 columnas con el argumento columnas

# Create data with date
df = pd.DataFrame(random,
                  index=dates_m,
                  columns=list('ABCD'))

Paso 3) Usando la funciรณn de cabeza

df.head(3)
A B C D
2030-01-31 1.139433 1.318510 -0.181334 1.615822
2030-02-28 -0.081995 -0.063582 0.857751 -0.527374
2030-03-31 -0.519179 0.080984 -1.454334 1.314947

Paso 4) Usando la funciรณn de cola

df.tail(3)
A B C D
2030-04-30 -0.685448 -0.011736 0.622172 0.104993
2030-05-31 -0.935888 -0.731787 -0.558729 0.768774
2030-06-30 1.096981 0.949180 -0.196901 -0.471556

Paso 5) Una excelente prรกctica para obtener una pista sobre los datos es utilizar describe(). Proporciona los recuentos, media, estรกndar, mรญnimo, mรกximo y percentil del conjunto de datos.

df.describe()
A B C D
contar 6.000000 6.000000 6.000000 6.000000
mean 0.002317 0.256928 -0.151896 0.467601
enfermedades de transmisiรณn sexual 0.908145 0.746939 0.834664 0.908910
min -0.935888 -0.731787 -1.454334 -0.527374
un 25% -0.643880 -0.050621 -0.468272 -0.327419
un 50% -0.300587 0.034624 -0.189118 0.436883
un 75% 0.802237 0.732131 0.421296 1.178404
max 1.139433 1.318510 0.857751 1.615822

Datos de corte

El รบltimo punto de este Python El tutorial de Pandas trata sobre cรณmo dividir un marco de datos de Pandas.

Puede utilizar el nombre de la columna para extraer datos en una columna en particular, como se muestra en el siguiente ejemplo de Pandas:

## Slice
### Using name
df['A']

2030-01-31   -0.168655
2030-02-28    0.689585
2030-03-31    0.767534
2030-04-30    0.557299
2030-05-31   -1.547836
2030-06-30    0.511551
Freq: M, Name: A, dtype: float64

Para seleccionar varias columnas, debe utilizar dos veces el corchete, [[..,..]]

El primer par de corchetes significa que desea seleccionar columnas, el segundo par de corchetes indica quรฉ columnas desea devolver.

df[['A', 'B']].
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Puedes dividir las filas con:

El siguiente cรณdigo devuelve las primeras tres filas.

### using a slice for row
df[0:3]
A B C D
2030-01-31 -0.168655 0.587590 0.572301 -0.031827
2030-02-28 0.689585 0.998266 1.164690 0.475975
2030-03-31 0.767534 -0.940617 0.227255 -0.341532

La funciรณn loc se utiliza para seleccionar columnas por nombre. Como es habitual, los valores que aparecen antes de la coma representan las filas y los que aparecen despuรฉs, las columnas. Para seleccionar mรกs de una columna, es necesario utilizar los corchetes.

## Multi col
df.loc[:,['A','B']]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Existe otro mรฉtodo para seleccionar varias filas y columnas en Pandas. Puedes usar iloc[]. Este mรฉtodo utiliza el รญndice en lugar del nombre de las columnas. El siguiente cรณdigo devuelve el mismo marco de datos que el anterior.

df.iloc[:, :2]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Soltar una columna

Puedes soltar columnas usando pd.drop()

df.drop(columns=['A', 'C'])
B D
2030-01-31 0.587590 -0.031827
2030-02-28 0.998266 0.475975
2030-03-31 -0.940617 -0.341532
2030-04-30 0.507350 -0.296035
2030-05-31 1.276558 0.523017
2030-06-30 1.572085 -0.594772

Concatenaciรณn

Puedes concatenar dos DataFrame en Pandas. Puedes usar pd.concat()

En primer lugar, necesitas crear dos DataFrames. Hasta ahora todo bien, ya estรกs familiarizado con la creaciรณn de marcos de datos.

import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
                     'Age': ['25', '30', '50']},
                    index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
                     'Age': ['26', '11']},
                    index=[3, 4])  

Finalmente, concatenas los dos DataFrame.

df_concat = pd.concat([df1,df2]) 
df_concat
Edad nombre
0 25 Juan
1 30 Smith
2 50 Paul
3 26 Adam
4 11 Smith

soltar_duplicados

Si un conjunto de datos puede contener informaciรณn duplicada, `drop_duplicates` es una opciรณn fรกcil de excluir filas duplicadas. Puedes ver que `df_concat` tiene una observaciรณn duplicada, `Smith` aparece dos veces en la columna `name`.

df_concat.drop_duplicates('name')
Edad nombre
0 25 Juan
1 30 Smith
2 50 Paul
3 26 Adam

Valores de clasificaciรณn

Puedes ordenar el valor con sort_values

df_concat.sort_values('Age')
Edad nombre
4 11 Smith
0 25 Juan
3 26 Adam
1 30 Smith
2 50 Paul

Cambiar nombre: cambio de รญndice

Puede utilizar cambiar nombre para cambiar el nombre de una columna en Pandas. El primer valor es el nombre de la columna actual y el segundo valor es el nombre de la nueva columna.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Edad_personas Apellido
0 25 Juan
1 30 Smith
2 50 Paul
3 26 Adam
4 11 Smith

Resumen

A continuaciรณn se muestra un resumen del mรฉtodo mรกs รบtil para la ciencia de datos con Pandas.

datos de importacion leer_csv
crear serie de grado comercial
Crear marco de datos Marco de datos
Crear rango de fechas rango de fechas
cabeza de retorno cabeza
cola de retorno cola
Describir describir
rebanada usando nombre nombre de datos ['nombre de columna']
Cortar usando filas nombre_datos[0:5]

Resumir este post con: