Operaciones Con Dataframes en Pandas
En pandas podemos hacer diferentes tipos de operaciones sobre un dataframe, vamos a agruparlas en las siguientes:
- Extracción de columnas
- Operaciones sobre columnas
- Creación de índices
Extracción de columnas
A veces necesitamos un subconjunto de las columnas para generar un modelo o un reporte, para esto podemos utilizar diferentes métodos:
Método 1: listar las columnas por nombre
>>> df_sc = df[['col1', 'col2', 'col5']]
Método 2: listar las columnas en un rango
>>> df_sc = df.loc[:, 'col1':'col3'] # esto es equivalente a df[['col1', 'col2', 'col3']]
Operaciones sobre columnas
Para aplicar una función a una columna en pandas tenemos que estar conscientes del tipo de función que vamos a implementar, si es una función elemento a elemento o una función de agregación.
Operaciones elemento a elemento
Para funciones elemento a elemento podemos utilizar la función apply
si son funciones de numpy o funciones que se utilicen con una sola variable.
df['sqrt_col1'] = df['col1'].apply(np.sqrt)
Otra manera de operar sobre columnas es utilizar la sintaxis normal de python
df['new_col'] = 3 * np.exp(-0.25 * df['col3'])
Funciones de agregación
para las funciones de agregación se puede usar groupby()
df.groupby('month')['col'].count()
numero de entradas por mes el col
.
Creación de índices
Para crear un índice se utiliza el comando set_index
, este funciona para utilizar como índice ya sea una columna o mas de una.
>>> df.set_index('col1')
>>> df.set_index(['col1', 'col2'])
Si ya creamos el dataframe se crea con un índice entero, entonces hay que usar el siguiente comando.
>>> df.set_index('col1', inplace=True, drop=True)
Después de una unión de dataframes o de una concatenación hay que regenerar el índice para evitar que haya duplicados (si es el caso)
>>> df.reset_index(inplace=True)