Medias ponderadas en Excel. Crear tu propia función

Hace años conocí a una persona que no sabía hacer medias ponderadas con Excel, hoy esa persona es una referencia dentro de este ecosistema de Inteligencia Artificial, Big Data, Machine Learning, Unsupervised Learning,… total, una referencia en la venta de humo porque me imagino que seguirá sin saber hacer una media ponderada en Excel con el SUMAPRODUCTO y por eso realizo esta entrada en homenaje a esas grandes locomotoras que echan humo y más humo pero que ahí siguen. Además también es útil para varias cosas más como: ...

12 de julio de 2019 · rvaquerizo

Truco Excel. Producto cartesiano de dos campos

Hacía tiempo que no ponía trucos en Excel y hoy os traigo un truco que puede ser de utilidad cuando tienes que hacer combinaciones. Se trata de realizar el producto cartesiano mediante una macro de Excel, además os pongo el enlace al propio Excel para que podáis rellenar los campos a cruzar. No creo que haga falta describir que es un producto cartesiano de dos campospero de forma resumida se puede decir que es crear el total de pares de esos dos campos, un todos con todos, es útil cuando quieres hacer combinaciones (como ya he dicho). La macro en Visual Basic se podrá hacer mejor, pero a mi se me ha ocurrido hacer un triple bucle, probablemente se pueda hacer con n campos pero si tenéis que realizar productos cartesianos más complejos es preferible que lo hagáis con otra herramienta. El código empleado es este: ...

14 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

Longitud de las frases del `Quijote` con `rstats`

Siempre he querido hacer cosas con rstats y el Quijote y ayer se me ocurrió medir la longitud de las frases del Quijote y crear un histograma que describa esta longitud. Aunque confieso que no me lo he leído, me he quedado en el capítulo 7 u 8 (no recuerdo) el caso es que me pareció hipnótico con sus ritmos, es musical. Además tengo muchas ganas de meter mano al proyecto Gutemberg porque esos ritmos, esa musicalidad, el uso de palabras esdrújulas,… me llama la atención. Bueno, al lío, todo el código está subido al repositorio por si lo queréis, pero hay algunas funciones y algunas ideas que me parecen interesantes. ...

27 de febrero de 2019 · rvaquerizo

Trucos simples para `rstats`

En mi cuenta de twitter suelo poner algunos trucos sencillos de R, cosas que me surgen cuando estoy trabajando y que no me cuesta compartir en 2 minutos, por si puedo ayudar a alguien. Me acabo de dar cuenta que de verdad son útiles y que tenerlos en twitter desperdigados es un problema, así que he pensado en recopilarlos en una entrada del blog para que sea más sencillo buscarlos (incluso para mi). Aquí van algunos de esos trucos: ...

11 de febrero de 2019 · rvaquerizo

Muestrear no es pecado

Hace unos días que nació la web de Jose Luis Cañadas y ya está añadida a los enlaces de AyD, desde aquí nos hacemos eco de esta nueva bitácora: https://muestrear-no-es-pecado.netlify.com/ Seguiremos muy de cerca a JL porque es un tipo de esos que merece ser escuchado por como mezcla pragmatismo y rigor dos de las principales características que tienen que tener los científicos de datos y que últimamente están vilipendiadas.

5 de febrero de 2019 · rvaquerizo

Mapa de México rápido (y sucio) y estático con rstats

No sabía como mostraros el funcionamiento de getData del paquete raster para tener que evitaros ir a GADM y descargar los correspondientes mapas. Bueno, pues se me ha ocurrido hacer una entrada que tenga el menor número de líneas posibles y que genere un mapa. No me lo tengáis mucho en cuenta: ```r library(ggplot2) library(raster) library(dplyr) #Obtenemos el mapa de GADM mex <- getData("GADM", country = "MX", level = 2) #El dato que vamos a pintar prov <- data.frame(region=unique(mex@dataNAME_2)) provaleatorio <- runif(nrow(prov),0,100) #Creamos el objeto mapa al que le añadimos el dato que necesitamos pintar mex@dataname = mex@dataNAME_2 mex <- map_data(mex) mex <- left_join(mex,prov) #Pintamos el mapa ggplot(data = mex, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = aleatorio)) + scale_fill_continuous(low="white",high="blue") + labs(title = "Quick and dirty") + theme_void() Ahí lo tenéis getData se conecta a GADM donde vía ISO 3 le decimos que mapa queremos y el nivel que queremos y pintamos un mapa de México con ggplot2 en un pis pas. Comentad si no entendéis algo, hay miles de entradas que hacen lo mismo de forma más detallada pero en menos líneas ninguna. Saludos.

31 de enero de 2019 · 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