Leer archivos Excel con Python

Entrada sobre la importación de Excel con Python, un aporte que sirve para mi documentación y que es posible que sea de ayuda para muchos que se estén iniciando en el uso de Python y Pandas, aunque en este caso para la lectura del Excel usaremos tanto Pandas como la librería xlrd. Lectura de Excel con Pandas Lo más sencillo para importarnos en Python un Excel y crearnos un data frame de Pandas es: ...

1 de abril de 2020 · rvaquerizo

Importar de SQL Server a Python Pandas dataframe

Nueva duda que me han planteado, cómo pasar la extracción de una consulta en BBDD SQL server a un dataframe de pandas. Es sencillo, pero siempre tenemos que tener configurado el origen de datos ODBC, doy por sentado que esa tarea ya está hecha. El paquete que vamos a usar es pip install pyodbc y el ejemplo de uso es el siguiente: import pyodbc import pandas as pd conexion = pyodbc.connect('Driver={ODBC Driver SQL Server};' 'Server=SERVIDOR;' 'Trusted_Connection=yes;') frase = "SELECT * from tabla where campo=1" consulta= pd.read_sql_query(frase, conexion) consulta.head() Creamos una conexión al origen ODBC, os recomiendo que directamente vayáis a ODBC Data Sources y miréis la definición y vamos a tener una frase que será nuestra consulta, también es aconsejable que esa consulta la probéis previamente en SQL Server para asegurar su correcto funcionamiento. En pandas empleamos read_sql_query( consulta , conexión ) y ya disponemos de un data frame directamente de la extracción de SQL Server y podemos hacer con él el data management que necesitemos con pandas.

18 de octubre de 2019 · rvaquerizo

Calendario de días laborales con Pandas

Es habitual escuchar que un científico de datos es un estadístico que trabaja con Python. En parte, tiene razón. Sin embargo, quien ha trabajado dentro del mundo académico sabe que para un estadístico las vacas son esféricas y los meses tienen 365,25/12 días. En cambio, en el mundo real, ni hay dos vacas iguales ni un mes igual a otro. Sirva esta entrada para poner en valor todo aquel trabajo adicional y tiempo dedicado por aquellos que trabajan con datos y huyen de simplificaciones estadísticas, ya se denominen científicos de datos o cómo quieran llamarse. ...

1 de julio de 2019 · Paco Gárate

Lectura de archivos csv con Python y Pandas

A continuación os planteo un acercamiento básico a la lectura de archivos csv con Python y algunos trucos para facilitar la vida cuando realizamos importaciones basados en la experiencia como son leer los primeros registros del csv o realizar una lectura de observaciones aleatoria por si el archivo es muy voluminoso. Para realizar las importaciones vamos a emplear Pandas y la función read_csv con sus infititas opciones: pd.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None) Para trabajar la entrada vamos a necesitar dos archivos de texto: ...

30 de abril de 2019 · rvaquerizo

Data Management básico con Pandas

Entrada dedicada al manejo de datos más básico con Python y Pandas, es análoga a otra ya realizada con dplyr para R. Sirve para tener en un vistazo las tareas más habituales que realizamos en el día a día con Pandas. Para aquel que se esté introduciendo al uso de Python puede ser de utilidad tener todo junto y más claro, a mi personalmente me sirve para no olvidar cosas que ya no uso. En una sola entrada recogemos las dudas más básicas cuando nos estamos iniciando con Python. Las tareas más comunes son: ...

26 de abril de 2019 · rvaquerizo

Recopilación Data Science Cheat Sheet

No sé como me llegado esta recopilación de Cheat Sheet para el Data Science pero viendo el trabajo que realizan algunas personas aun es posible creer en la humanidad. Disfrutad del link y ya estamos todos siguiendo el git de este gran tipo: https://github.com/abhat222/Data-Science–Cheat-Sheet

2 de abril de 2019 · rvaquerizo

Las mujeres son más inteligentes pero no están en puestos directivos

A raíz de una noticia sobre la reestructuración del consejo directivo de un gran banco en España donde sólo una mujer ha sido elegida entre los 12 puestos de dirección general me ha surgido la oportunidad para explicar que es una distribución de probabilidad, que es una distribución normal y que es la media y la desviación típica. Aquí tenéis en Python un código que simula el IC de los hombres y el IC de las mujeres, no me he complicado mucho la vida ni he buscado datos al respecto pero leyendo un poco creo que deben de parecerse mucho a esto: ...

3 de febrero de 2019 · rvaquerizo

Crear archivo csv desde SAS con Python

Con la librería sas7bdat de Python podemos leer archivos SAS y crear directamente un data frame, es la mejor librería para hacerlo, si la tabla SAS que deseáis leer está comprimida (compress=yes) con pandas no podréis hacerlo. Pero tengo que agradecer a mi compañero Juan que me haya descubierto la función convert_file para pasar directamente el archivo SAS a csv, es más eficiente y parece que consume menos recursos del equipo. La sintaxis es muy sencilla: ...

25 de agosto de 2018 · rvaquerizo

Truco Python. Seleccionar o eliminar variables de un data frame en base a un prefijo, sufijo o si contienen un caracter

A la hora de seleccionar las características de un data frame es posible que nos encontremos con la necesidad de seleccionar o eliminar características del data frame y que el nombre de esas características tenga un determinado patrón. Esta labor la podemos realizar mediante selección de elementos en listas, en esta entrada del blog vamos a tener 3 tipos de selecciones: Seleccionar o eliminar aquellas variables que empiezan por un determinado prefijo Seleccionar o eliminar aquellas variables que contienen una cadena de caracteres Seleccionar o eliminar aquellas variables que finalizan con un sufijo Para ilustrar este trabajo generamos un data frame con datos aleatorios y 10 columnas: ...

22 de mayo de 2018 · rvaquerizo

Truco Python. Agrupar variable en función de la frecuencia

Me ha surgido la necesidad de crear una nueva variable en un data frame a partir de la frecuencia de otra, es decir, quedarme con los valores más frecuentes y aplicar una categoría resto para aquellos valores que no estén en los más frecuentes. Para realizar esto se me ha ocurrido la siguiente función en Python: def agrupa_frecuencia (var_origen, var_destino, df, grupos, valor_otros): df_grp= df[var_origen].value_counts() list_grp = list(df_grp.iloc[0:grupos,].index) df[var_destino] = df[var_origen].map(lambda x: x if x in list_grp else valor_otros, na_action='ignore') Es una función con más parámetros que líneas, pero necesitamos una variable de origen, una variable de destino que será la que calcularemos, el data frame sobre el que realizamos la tarea, el número de grupos más otro que será el «resto» y dar un valor a ese «resto». La función lo que hace es una tabla de frecuencias ordenada descendentemente con value_counts() y creamos una lista con el número de grupos que deseamos. Por último mediante lambdas si la variable origen está en la lista generada anteriormente le asignamos el mismo valor, en caso contrario asignamos el valor «resto». Es una programación sencilla, seguramente haya una función específica en sckitlearn para agrupar variables en base a la frecuencia, pero no la he encontrado y he tardado más en buscarla que en hacerla. ...

18 de mayo de 2018 · rvaquerizo