Truco Excel. Transponer una fila en varias columnas con DESREF

Creo que alguna vez me lo han preguntado. Se trata de tranponer en Excel el contenido de una fila en varias columnas, como es habitual (sobre todo si escribo yo) una imagen vale más que mil palabras: En este caso se trata de pasar de una fila a 3 columnas por lo que se trata de que la función DESREF tiene que moverse en función del elemento que va a transpone. En este caso empezando desde A1 tenemos que generar un autonumérico para las columnas que se ha de mover de 3 en 3 por lo que multiplicaremos por 3 y sumaremos la columna: ...

30 de septiembre de 2018 · rvaquerizo

Aprende Pyspark sin complicaciones

Hace tiempo un gran data engineer me preparó una máquina virtual para hacer pinitos con pyspark y llevaba tiempo pensando en como poder publicar trucos y ejemplos con pyspark sin necesidad de máquinas virtuales y empleando notebooks. Ya he encontrado la mejor manera, los contenedores de docker. Cuanto más profundizo en docker más me gusta trabajar con contenedores y con esta entrada me váis a entender perfectamente. El primer paso es instalar docker y arrancar el terminal. La idea de docker es ejecutar un contenedor en cualquier máquina independientemente del sistema operativo. Instalar spark en windows es un dolor de cabeza, si disponemos de una máquina virtual con linux es más sencillo, pero imaginad que, con dos líneas de código ya podéis trabajar con un notebook y pyspark, pues eso lo podemos hacer con docker. ...

7 de septiembre 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

Libro de R de Carlos Gil

Muchos de los lectores de esta bitácora conocéis https://www.datanalytics.com/ el blog de Carlos Gil. En él ha publicado un libro/manual de R de acceso libre para todos aquellos que necesitéis una guía que abarque desde lo más básico al tratamiento de datos con R pasando por Shiny y análisis estadísticos de esos viejunos tan denostados últimamente. De todas formas no sé como no deja este mundillo y se dedica plenamente a su https://martinacocina.es/. En palabras de mi hijo: «El mejor brunch de Madrid, un 10».

10 de abril de 2018 · rvaquerizo

Truco Python. Restar meses con formato YYYYMM

La operación con fechas en meses con el formato YYYYMM es tarea habitual cuando trabajamos con tablas particionadas. De hecho hay una entrada en el blog sobre esto muy popular. Me ha surgido este tema con Python y os pongo la función que he creado: def dif_mes(d1, d2): return (d1//100 - d2//100) * 12 + d1%100 - d2%100 dif_mes (201812,201709) Muy sencilla, por si os surge la necesidad.

10 de abril de 2018 · rvaquerizo

ILOVEFS18 Amor por el software libre

Los días 13 y 14 de Febrero no podéis perderos en Madrid el ILOVEFS18 un evento al que si estáis por aquí no podéis faltar. Para más información tenéis el siguiente link: http://medialab-prado.es/article/ilovefs18 ¡Nos vemos!

12 de febrero de 2018 · rvaquerizo

Beatifulsoup. Web scraping con Python o como las redes sociales pueden estar cambiando la forma de escribir

Desde hace tiempo mis frases son más cortas. Creo que es un problema de las redes sociales, sobre todo twitter, que está cambiando mi comportamiento. Para analizar si esto está pasando se me ha ocurrido analizar la longitud de las frases de este blog desde sus inicios y de paso aprovechar para hacer web scraping con la librería Beatifulshop de Python. La idea es recorrer el blog y calcular la longitud de las frases y representar gráficamente como ha ido evolucionando esa longitud. ...

25 de diciembre de 2017 · rvaquerizo

Los bancos lo llaman Transformación Digital yo lo llamo me da miedo Facebook

¿Si Facebook prestara dinero? ¿Si Facebook hiciera un banco? Tiene información interesante de nosotros, variables relevantes para cualquier modelo de scoring de crédito y sabe como es tu comunidad de amigos cibernéticos y cuales de ellos podrían avalarte a la hora de conceder un crédito. Además tanto Facebook, como Amazon o Wallapop tienen sus propios medios de pago y Google no tardará en crear su propio banco, unos están creando la economía del futuro y otros no pueden sobrevivir sin programadores en COBOL, entiendo que se quieran transformar aunque a lo mejor no es un tema de captar pasivo y prestar dinero a lo mejor es un tema de relacionar los recursos de las personas.

29 de octubre de 2017 · rvaquerizo

Pasando de SAS a R. Primer y ultimo elemento de un campo agrupado de un data frame

Las personas que están acostumbradas a trabajar con SAS emplean mucho los elementos first, last y by, en el blog hay ejemplos al respecto, en R podemos hacer este trabajo con la librería “estrella” dplyr de un modo relativamente sencillo. A continuación se presenta un ejemplo para entender mejor como funciona, creamos un conjunto de datos aleatorio: ```r id <- rpois(100,20) mes <- rpois(100,3)+1 importe <- abs(rnorm(100))*100 df <- data.frame(cbind(id,mes,importe)) Tenemos un identificador, una variable mes y un importe y deseamos obtener el menor importe por mes el primer paso a realizar es ordenar el data frame de R por ese identificador, el mes y el importe en orden descendente: ...

19 de octubre de 2017 · rvaquerizo