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:
ยฟ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] |

