Creacion De Dataframes en Pandas
En los artículos anteriores vimos diferentes maneras de crear series con pandas, vimos diferentes maneras de operar sobre las series, modificarlas tanto por elemento, como en rangos como aplicar funciones sobre todos los elementos. Ahora veremos como generar dataframes. Tanto a partir de datos, como apartir de series.
Introducción a los dataframes
Los dataframes son la estructura de datos mas común y mas versátil de pandas,
son el equivalente de data.frame
en R y de las tablas de SQL y las estructuras
de datos nativas de SPSS y STATA.
Los dataframes son un tipo de arreglos con índices tanto por columna, como por fila, entre otras cosas cada una de las columnas puede tener su propio tipo de datos, sin limitar a las demás, esto como en Excel o SPSS, donde cada columna es independiente de las demás.
La creación de dataframes en pandas se puede hacer a partir de muchas y muy diversas fuentes. A continuación revisaremos algunas de las más frecuentes.
Dataframes a partir de diccionarios
Una de las maneras más sencillas de crear dataframes pequeños es mediante diccionarios de python.
>>> data_dict = {'column1': [1, 2], 'column2': [3, 4]}
>>> df = pd.DataFrame(data=data_dict)
Tambien se puede construir un dataframe a partir de un arreglo de numpy:
>>> df = pd.DataFrame(np.array([[1,2,'a'],[3,4,'b'],[5,6,'c']]),
>>> columns=['c1','c2','w1'])
Dataframes a partir de series
Para generar un dataframe a partir de series, lo que necesitamos hacer, es colocar las series en una lista y concatenarlas.
df = pd.concat(series, axis=1)
Dataframes a partir de consultas sql
Pandas puede ser alimentado y generar dataframes a partir de consultas en SQL usando SQLAlchemy. Todas las bases de datos que pueden conectarse vía SQLAlchemy (como PostgreSQL, MySQL, SQLite, Oracle, etc…)
df = pd.read_sql('SELECT * FROM mytable', connection)
Dataframes a partir de archivos Excel
Muchos clientes entregan los datos para un análisis en uno o varios archivos de excel, en negocios, los archivos excel son un formato universal para la transferencia de datos. Leer un archivo de Excel en pandas es sumamente sencillo.
df = pd.read_excel('my_file.xlsx')
Dataframes a partir de archivos separados por comas (CSV)
Otra manera de transferir datos es utilizando archivos CSV, muchos softwares y dispositivos generan archivos CSV. La lectura de archivos CSV tiene muchísimas opciones para ajustar la lectura de los archivos bajo diferentes dialectos.
df = pd.read_csv('my_file.csv')
Dataframes a partir de archivos STATA y SPSS
Para abrir archivos .dta
de STATA o .sav
de SPSS utilizaremos la biblioteca pyreadstat la cual podemos instalar con pip o conda
import pyreadstat
df, meta = pyreadstat.read_sav("/path/to/file.dta")
Esta biblioteca tiene diferentes funciones para poder cambiar los valores codificados a sus etiquetas, manejo de los nulos y otras bondades.