Tipos de datos para especialistas en marketing: números, cadenas y booleanos
Publicado: 2017-08-10Nota: Esta publicación de blog es la tercera de una serie escrita por nuestro analista web sénior, Adrián Palacios, y está diseñada para proporcionar a los especialistas en marketing la información y las instrucciones necesarias para instalar el lenguaje de programación Python. En caso de que te lo hayas perdido, la primera publicación de Adrian explica por qué los especialistas en marketing deberían considerar hacerlo en primer lugar y su segunda publicación explica cómo instalar Python.
Cuando comencé a aprender a programar, tenía muchos problemas con el concepto de "tipos de datos". Siempre fue uno de los primeros temas discutidos, pero también uno de los más abstractos. Debido a la frustración de no entender, generalmente me salteo cualquier discusión sobre los tipos de datos y la racionalizo diciéndome a mí mismo: "¿Qué importan?" Pero después de algunos años de hacer que la programación sea parte de mi trabajo diario, los tipos de datos (lentamente) han comenzado a tener sentido.
¿Qué son los tipos de datos?
Los tipos de datos son un conjunto de reglas que rigen lo que puede (y no puede) hacer con Python. Experimenta restricciones similares en el mundo real todos los días: intente pagar una comida con una tarjeta de crédito cuando el restaurante solo acepta efectivo. Trate de andar en bicicleta río abajo en lugar de usar una canoa o un kayak. O intente hornear un pastel con sal en lugar de azúcar. Podrías probar estas cosas si realmente quisieras, pero dudo que estés contento con el resultado.
De manera similar, si piensa en la programación como hornear, entonces los tipos de datos son los ingredientes clave de cualquier código de Python, al igual que los huevos, la harina, la mantequilla, el polvo de hornear y el azúcar son ingredientes clave para hacer un pastel. ¿O tal vez quieres un pastel? Use menos harina, deje caer el polvo de hornear por completo, tal vez agregue un relleno de frutas y listo, está en camino de hacer un pastel. ¿Ves a dónde va esto? Comprender de qué es capaz cada tipo de datos y cómo combinarlos es clave para ser un mejor programador.
Estos son solo algunos tipos de datos comunes en Python:
Números, que se subdividen en otros tipos, como:
Enteros: 0, 1, 2, 3
Flotadores: 0,0, 1,0, 2,5, 3,145
Cadenas: 'Piensa diferente', 'Netflix and Chill'
Booleanos: Verdadero, Falso
Hay muchos más tipos de datos en Python, pero por ahora nos centraremos en estos tres.
En esta publicación, aprenderá algunas de las cosas que puede hacer con los tipos de datos básicos en Python y por qué los tipos de datos son importantes.
En mi experiencia, esta tiende a ser la parte más aburrida de cualquier libro/video/curso en línea “Aprenda a programar”, pero debido a que los tipos de datos son tan cruciales para la programación, le recomiendo que no se salte esta publicación.
Números
Los dos tipos principales de números en Python son los enteros (números enteros) y los flotantes. Los flotantes se pueden considerar como decimales, pero existen algunas diferencias importantes, una de las cuales se analizará más adelante.
Lo más obvio que podemos hacer con los números es... ¡matemáticas! Aquí hay algunos caracteres especiales que se usan para hacer matemáticas en Python:
Con estas operaciones básicas, ahora podemos trabajar en algunos escenarios.
escenario 1
Su equipo de contenido informó que el blog generó 80 000 páginas vistas hace dos semanas y esta semana generó 105 000 páginas vistas; ¿Cuál es el crecimiento semanal en páginas vistas? Recuerda que para calcular el porcentaje de cambio que puedes hacer (Número nuevo – Número anterior) ÷ Número anterior:
Bueno, eso no parece del todo correcto. ¿Por qué no? Como cualquier buen matemático, Python siguió el orden de las operaciones en la declaración que escribimos. Aquí podemos usar paréntesis para decirle a Python el orden que realmente queremos:
Eso es mejor. Recuerda, estamos viendo un porcentaje, así que en este caso, mover el decimal dos lugares a la derecha nos dará lo que necesitamos. Parece que el tráfico al blog ha crecido un 31,25 % semana tras semana.
Escenario 2
Está trabajando con un editor en línea para ejecutar una campaña especial que incluye banners de gran formato y anuncios de video. El editor envió una propuesta indicando que el paquete tiene un costo fijo de $15,000 y esperan que genere 550,000 impresiones; le gustaría calcular el CPM para comparar mejor esta propuesta con otras opciones.
Para encontrar el CPM, usamos la fórmula Costo de campaña ÷ (Total de impresiones ÷ 1000):
Esta vez obtuvimos el orden de las operaciones correcto; parece que el CPM de la campaña es de aproximadamente $27,27.
Usar Python de esta manera es realmente tedioso, especialmente cuando escribir fórmulas largas solo devuelve una única métrica. Si bien estos ejemplos son simples, existen formas de aplicar operaciones matemáticas más complicadas a cientos de miles (o incluso millones) de filas de datos.
Las versiones anteriores de Python (versión 2.7 y anteriores) dan algunas respuestas extrañas cuando se trata de dividir números enteros que darían como resultado un número flotante, como dividir 1 ÷ 3. En estos dos ejemplos, hemos estado dividiendo números enteros y terminamos con números flotantes. sin ningún problema, lo cual es parte de la magia de usar una versión más nueva de Python. Plantea la pregunta: ¿por qué los números con un punto decimal se denominan flotantes en lugar de decimales? Jackie Kazil y Katharine Jarmul tienen un gran ejemplo en su libro, Data Wrangling With Python : en muchos lenguajes de programación, 0.1 + 0.2 no es igual a 0.3. Pruébelo usted mismo: escriba 0.3 en su terminal, luego sígalo con 0.1 + 0.2
Extraño, ¿verdad? Mark Lutz profundiza más en esta rareza en su libro, Learning Python , pero dado que los especialistas en marketing generalmente no necesitan calcular números hasta el millonésimo grado, no es fundamental comprender completamente este problema y es lo suficientemente bueno como para simplemente saber que existe. Pero si tienes mucha curiosidad, aquí hay algunas publicaciones que explican más:
- Punto flotante desmitificado, parte 1
- Punto flotante desmitificado, parte 2
Instrumentos de cuerda
Las cadenas se pueden considerar como caracteres entre comillas. Esta es una definición extremadamente simplificada porque ignora los matices entre bytearrays, Unicode, ASCII, etc., pero creo que entrar en ese tipo de detalles es innecesario por ahora.
¿Cómo se ingresan correctamente los caracteres entre comillas? Resulta que hay más de unas pocas maneras diferentes. Por ejemplo, la mayoría de las veces no importa si usa comillas simples o dobles, siempre que mantenga la coherencia:
Al comenzar con una comilla doble en la tercera cadena y terminar con una comilla simple, encontramos un error. Probablemente no mezclarías comillas simples y dobles a propósito, pero una cosa a tener en cuenta son los apóstrofes:
Observe que la primera cadena, que estaba encerrada entre comillas dobles, manejó bien el apóstrofe, mientras que la segunda cadena no. ¿Por qué? Una vez que Python encontró la segunda comilla simple, esperaba que la cadena terminara, pero las letras continuaron. Cortar la oración silencia el error:
Pero tener solo una parte de una oración no es útil. Si realmente desea usar comillas simples, una opción es "escape" del apóstrofo. Eso se puede hacer colocando una barra invertida (\) inmediatamente antes del apóstrofe en su oración. Esto le dice a Python que trate al siguiente carácter de manera especial:
Escapar del apóstrofe nos permitió seguir usando comillas simples y un apóstrofe en la misma cadena.
Hay otra forma de crear cadenas en Python: comillas triples. Tenga en cuenta que cuando escribe una cadena de varias líneas, debe presionar Intro para comenzar la siguiente línea; esto también cambia Terminal para mostrar...: a la izquierda de su nueva línea. Esto volverá a aparecer cuando comencemos a escribir varias líneas de código.
Finalmente, es posible que observe algunos caracteres extraños en la cadena: \n. Esto le dice a la computadora dónde ingresó una nueva línea; es útil si necesita imprimir la cadena nuevamente y desea ser preciso sobre el formato.
Ok, ahora que hemos pasado todo ese tiempo buscando cómo ingresar correctamente una cadena (lo sé, ¿no? Tanto trabajo para algo tan simple...), es hora de pasar a la parte divertida: manipular cadenas.
Hay muchos, muchos más métodos para cadenas; también hay otros temas completos, como la coincidencia de patrones y el corte, que abordaremos más adelante. Con los conceptos básicos fuera del camino, trabajemos con un ejemplo real.
escenario 1
Supongamos que tiene una copia nueva que debe cargarse en AdWords, pero toda la copia está en minúsculas y no está seguro de si los títulos están dentro del límite de 30 caracteres. Comprobemos la longitud e imprimamos el título "vuelos más baratos a París" en el caso del título:
El primer ejemplo es técnicamente una función, mientras que el segundo es un método. Lo único que nos importa ahora es que cada uno se escriba de manera diferente: con una función, primero escribimos "len(", luego la cadena en sí y finalmente el último paréntesis ")". La buena noticia es que el título está dentro del límite de 30 caracteres impuesto por AdWords.
Luego, con el método, primero escribimos la cadena, luego agregamos .title() después de la comilla de cierre (¡sin espacios!).
Finalmente, es posible que se pregunte "¿Por qué estoy haciendo esto en Python cuando las mismas fórmulas están disponibles en Excel?" Ese es un buen punto.
Si bien jugar con los titulares es un ejemplo tonto, espero que el punto sea claro: hay muchas opciones disponibles para manipular texto con Python. Y similar al escenario anterior con el cálculo de CPM o cambio porcentual, poder manipular miles de caracteres de texto en solo unas pocas líneas de código es una herramienta muy poderosa para tener a mano.
Por ejemplo, el mayor dolor de cabeza que me ha ahorrado es limpiar millones de filas de URL de Google Analytics. El segundo punto de este ejercicio es señalar algo que puede ahorrarte otros dolores en el futuro: si sabes cómo usar fórmulas en Excel o Google Docs, ya estás un paso adelante para entender cómo programar. Hay muchas similitudes que se traducirán de Excel a Python.
Booleanos
Los dos valores booleanos principales en Python son True y False. Su significado es realmente sencillo: Verdadero significa verdadero y Falso significa falso.
Hasta que nos sumerjamos en el uso de la lógica en Python, es mejor explicar los valores booleanos a través de una analogía. Cuando crea una campaña de anuncios de video de Facebook, debe decidir qué creatividad usar. ¿Debería ser el nuevo video moderno que tiene como objetivo el conocimiento de la marca, o debería quedarse con el video antiguo pero probado en batalla que tiene un claro llamado a la acción? Depende de lo que estés tratando de lograr, ¿verdad? Del mismo modo, habrá un punto en el que necesitará crear alguna lógica para decirle a su computadora qué camino seguir, y los valores booleanos son una forma de lograr esa tarea.
Hay otros objetos en Python que pueden actuar como valores booleanos, pero por ahora bastará con introducir True y False. Trataremos este tema más a fondo en un futuro post.
¿Así que lo que?
Al comienzo de esta publicación, mencioné que cuando intenté aprender sobre los tipos de datos por primera vez, el proceso fue tedioso y aburrido. Al igual que el adolescente impaciente en la clase de geometría de la escuela secundaria que incita a un maestro con la pregunta "¿Cuándo necesitaré saber esta basura inútil?"
Sentí que pasar por todas estas Reglas sobre los tipos de datos no tenía sentido. Pero he llegado a apreciar las reglas porque cuando intentas romper estas Reglas (la mayoría de las veces), se produce un error. Si es un programador responsable y prueba su código con anticipación, encontrarse con estos errores puede evitar que cometa errores críticos en su código cuando realmente importa. Exploremos algunas formas en las que podrían surgir errores.
En los escenarios en los que practicaste matemáticas con tipos de números, ¿notaste que no se usaban comas al hacer estos cálculos? Probablemente estés acostumbrado a escribir números con comas (¡o decimales para nuestros amigos europeos!), pero si lo intentas en Python, encontrarás un comportamiento extraño:
Mmm; no es en absoluto lo que esperabas. Al colocar una coma en este número, sin saberlo, creamos una "tupla"; no es necesario saber qué es una tupla en este momento, pero es importante ver que la coma divide el número en 500 y 0, que es muy diferente de quinientos mil.
Este ejemplo también destaca un aspecto crucial de la escritura de código: un solo carácter mal escrito puede causar grandes problemas. Revisar el código es difícil al principio, pero con la práctica, mejorará. Los resultados inesperados o los errores no son motivo de pánico; puede dar miedo, pero generalmente solo significa que algo se perdió en la traducción.
Una regla que probablemente esperaría es que al intentar agregar un número entero y una cadena obtendría un error:
Y estarías en lo cierto. En la segunda línea de código, intentamos agregar el número entero 1 a la cadena '1', lo que resultó en un error. Usted puede estar pensando para sí mismo “Ese es un mal ejemplo; ¿cuándo intentaría alguien sumar un número entero a una cadena? Te sorprendería la cantidad de API que devuelven números como una cadena. Hay muy buenas razones para hacer esto, pero cuando se trata de una API, suponer que un número será un número no es una apuesta segura. Un gran ejemplo es la nueva API de informes de Google Analytics. Echa un vistazo a la captura de pantalla de los datos que te proporciona Google Analytics cuando solicitas un informe. ¡Sorpresa! Todos los números (mira los campos de "valores") están entre comillas.
Eso como que arroja una llave inglesa a las cosas, ¿no es así? Lo haría, pero si lee la documentación de la API con anticipación, esperará este problema. Por suerte también hay algunas herramientas en Python que nos pueden ayudar, como la función int():
Al colocar la cadena '1' dentro de la función int(), le estamos diciendo a Python que queremos tratar esto como un número entero; ahora puedes sumar estos números y seguir con tu vida.
Estas son solo algunas posibilidades de cómo los tipos de datos pueden determinar lo que puede hacer en Python, pero también demuestran que casi siempre hay una manera de solucionar estos problemas. Comuníquese conmigo en Twitter si tiene alguna pregunta sobre los tipos de datos.