Módulo 2. Manipulación de Datos
Módulo 2. Manipulación de Datos
Manipulación de datos
Introducción
¿Qué es la manipulación de datos?
La manipulación de datos es el proceso de cambiar o alterar datos para hacerlos más
legibles y organizados. Por ejemplo, puede ordenar los datos alfabéticamente para
acelerar el proceso de búsqueda de información útil. Otro ejemplo de manipulación de
datos es la gestión de sitios web. Los propietarios de sitios web pueden utilizar los
registros del servidor web para localizar las páginas web más visitadas, las fuentes de
tráfico y mucho más. De manera similar, los corredores de bolsa utilizan la manipulación
de datos para pronosticar las tendencias del mercado de valores.
Las empresas usan datos para predecir tendencias, comprender el comportamiento de los
clientes, aumentar la productividad, reducir costos, etc. mediante la manipulación de
datos. Otros beneficios adicionales incluyen:
ETL, por otro lado, tiene un propósito diferente. Implica extraer datos del sistema de origen
y hacer que sea compatible con el sistema de destino antes de escribir en él.
Estos son solo algunos casos de uso de manipulación de datos. Algunas de las otras
formas en que la manipulación puede ser beneficiosa para las organizaciones incluyen:
Proyección de datos
Como empresa, no se puede negar la importancia de los datos cuando se trata de
inteligencia empresarial (BI). Realizar un análisis exhaustivo de los datos es vital para las
empresas, especialmente cuando se trata de inversiones. Todas las empresas utilizan
datos del pasado para planificar el futuro. Las herramientas de manipulación de datos
facilitan la creación de proyecciones, especialmente en el sector financiero, donde
depende de los resultados de sus inversiones pasadas para consideraciones futuras.
Generación de valor
A menudo, los datos que provienen de los sistemas de origen incluyen información
redundante, errónea o no deseada. Hacer que estos datos sean útiles requiere ejecutarlos
a través de controles de calidad y aplicar filtros de limpieza para extraer la información
esencial para su empresa. Al utilizar la manipulación de datos, puede limpiar rápidamente
sus datos para que pueda filtrar los registros que importan.
Interpretación de datos
Eficiencia mejorada: al tener datos más organizados, una empresa puede aislar e incluso
reducir las variables externas para contribuir a la eficiencia general de la empresa.
En la unidad 2, estudiaremos el potencial que tiene Pandas dentro del ámbito de Data Science y
Machine Learning, ya que ofrece unas estructuras muy poderosas y flexibles que facilitan la
manipulación y el tratamiento de datos.
Actividad de repaso
Seleccionar a cuál opción corresponde la siguiente afirmación: “Implica
ordenar, reorganizar y mover datos sin cambiarlos esencialmente”.
ETL.
Manipulación de datos.
Justificación
Video de inmersión
NumPy suministra funciones matemáticas de alto nivel para operar en estas matrices. Contiene
funciones matemáticas para el cálculo, funciones básicas de álgebra lineal, transformadas de
Fourier, capacidades avanzadas de números aleatorios y herramientas para la integración con
otros lenguajes, como Fortran, C y C ++.
NumPy no forma parte de una instalación básica de Python. Tiene que ser instalado después de
la instalación de Python.
Una vez instalado, la convención general para importar NumPy es: «import numpy as np».
Es decir que “np” es la convención que se utiliza para emplear NumPy dentro del código. Por eso,
cada vez que necesitemos usar Numpy, lo primero que escribimos en el código es: «import
numpy as np».
La página web oficial de NumPy provee información y documentación actualizada sobre esta
librería: https://numpy.org/
Esta página tiene un intérprete de comandos que nos permitirá escribir nuestros códigos de
ejercicios y comprobar online los resultados de los códigos que vamos ingresando.
Para que podamos ir practicando los ejercicios propuestos, recomendamos ingresar a esta
página: https://www.python.org/shell/
Aquí se encuentran los arreglos multidimensionales o matrices que nos servirán para la
manipulación de datos con NumPy.
Python 3.10.5 (main, 22 de julio de 2022, 17:09:35) [GCC 9.4.0] en Linux. Type «help»,
«copyright», «credits» o «license» para más información.
Al utilizar np. array(lista), estamos creando un array (arreglo) a partir de la lista ([1, 2, 3, 4])
Ahora, ingresemos:
>>> a
Aparecerá lo siguiente:
array([1, 2, 3, 4])
Nos está devolviendo una referencia al array que acabamos de crear y que lo hemos asociado a
la variable a.
Ahora, veamos un ejemplo sencillo de suma que va a agregar el número uno a cada elemento de
nuestro arreglo.
Escribamos en el intérprete:
>>> a+1
array([2, 3, 4, 5])
Como se puede observar, a cada miembro del arreglo se le sumó el número uno.
Podemos realizar diversas operaciones matemáticas sobre cada elemento del array o
sobre todo el array.
Ingresemos lo siguiente:
Estamos solicitando que nos muestre el resultado de multiplicar por 2 cada elemento del arreglo:
[2 4 6 8]
>>> a3 = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
>>> print(a3.ndim)
Retorna lo siguiente:
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
Ahora, ingresemos lo siguiente:
Vemos que cada elemento de este arreglo de tres dimensiones fue multiplicado por 8982 y
presentado en forma ordenada con la función «print()».
Imaginemos, entonces, todo lo que se puede hacer con NumPy al aplicarlo a una gran cantidad
de datos complejos.
Ahora, vamos a profundizar más en el objeto array de NumPy para poder comprender
mejor las operaciones con matrices y datos multidimensionales.
Actividad de repaso
En Python, hemos creado el siguiente arreglo con NumPy:
Justificación
La ventaja del arreglo (matriz) es que es una colección ordenada de datos y se emplean para
almacenar múltiples valores en una sola variable, frente a las variables que solo pueden
almacenar un valor (por cada variable).
>>> a3 = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
Al ingresar esto:
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
Por ejemplo, en un array, podríamos almacenar las notas de los estudiantes de un curso y, luego,
por medio de código, acceder a dichas notas para que las muestre por estudiante, de mayor a
menor, para que haga una media, etc. Es decir, a partir de ahí, podríamos realizar distintas
operaciones.
Creación de arrays
>>> np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
array([[[ 1, 2, 3],
[ 4, 5, 6]],
[[ 7, 8, 9],
[10, 11, 12]]])
Para una lista de valores se crea un array de una dimensión, también conocido como
vector.
Para una lista de listas de valores se crea un array de dos dimensiones, también
conocido como matriz.
Para una lista de listas de valores se crea un array de tres dimensiones, también
conocido como cubo.
Y así sucesivamente. No hay límite en el número de dimensiones del array más allá de la
memoria disponible en el sistema.
>>> print(a1)
[1 2 3]
>>> print(a2)
[[1 2 3]
[4 5 6]]
>>> print(a3)
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
Figura 8: «Print(m)»
El esquema mostrado por la instrucción print(m) muestra que el primer elemento de la lista
usada para crear el array ([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) sigue siendo considerado como la
primera fila del nuevo array, y el segundo elemento ([11, 12, 13], [14, 15, 16], [17, 18, 19]])
como la segunda fila.
La primera dimensión ocupa el eje vertical (eje 0). (Sánchez Alberca, 2020, p. 46)
Figura 9: Esquema «print(m)»
Fuente: Interactive Chaos, (s. f.), http://bit.ly/3ZE7mvl
np.arange(inicio, fin, salto): Crea y devuelve una referencia a un array de una dimensión
cuyos elementos son la secuencia desde inicio hasta fin tomando valores cada salto.
np.linspace(inicio, fin, n): crea y devuelve una referencia a un array de una dimensión
cuyos elementos son la secuencia de n valores equidistantes desde inicio hasta fin.
Atributos de un array
Para acceder a los elementos contenidos en un array se usan índices al igual que para
acceder a los elementos de una lista, pero indicando los índices de cada dimensión
separados por comas.
También es posible obtener subarrays con el operador dos puntos: indicando el índice
inicial y el siguiente al final para cada dimensión, de nuevo separados por comas.
Actividad de repaso
Seleccione la opción correcta. ¿Cuántas dimensiones tiene el siguiente
array? >>> a2 = np.array([[1, 2, 3], [4, 5, 6]])
Justificación
Cadenas de caracteres.
Números enteros de distintos tamaños.
Números reales.
Booleanos.
Existen dos formas de realizar operaciones matemáticas con arrays: a nivel de elemento y
a nivel de array.
Las operaciones a nivel de elemento operan los elementos que ocupan la misma posición
en dos arrays. Se necesitan, por tanto, dos arrays con las mismas dimensiones y el
resultado es una array de la misma dimensión.
>>> print(a / b)
[[1. 2. 3. ]
[2. 2.5 3. ]]
>>> print(a ** 2)
[[ 1 4 9]
[16 25 36]]
Una característica muy útil de los arrays es que es muy fácil obtener otro array con los
elementos que cumplen una condición.
a[condicion]: devuelve una lista con los elementos del array a que cumplen la condición.
En Python, existen diversos operadores estándar que nos permiten el proceso de
filtrado:
Le solicitamos ahora que muestre solo aquellos elementos del arreglo que cumplan
con la condición de ser mayores que 2 y menores que 6:
Muestra:
Ahora, queremos que nos muestre solo los elementos que sean mayores a 1 y que sean
distintos a 55, ingresando:
Veamos este ejemplo de utilización del método numpy.array_equal() para comparar dos
arrays con NumPy.
print(np.array_equal(a1,a1))
True
print(np.array_equal(a1,a2))
False
Si queremos que nos muestre solo los elementos que sean menores que
60 y que sean distintos a 15, ¿cuál de las siguientes opciones debemos
ingresar?
Justificación
Para estos casos, existen varias operaciones matemáticas que tienen métodos incorporados en
la biblioteca NumPy.
Ingresamos:
>>> np.sqrt(a)
Nos dará este resultado, un array formado por las raíces cuadradas de cada uno de los
elementos originales:
Media
La media (mean), comúnmente conocida como el promedio, es útil para obtener el centro de un
dataset. NumPy incluye una función para calcular la media de los arreglos: «np.mean»
Ingresamos lo siguiente en el intérprete:
Muestra la media:
5.8
Cuando «np.mean» calcula una sentencia lógica, el resultado (la media) será equivalente al
número total de los «True», dividido por el largo («len») del array.
La última línea de código evaluó las respuestas mayores a 5 y les asignó el valor de 1 («True»).
Luego, las dividió por el largo («len»). El resultado arroja que el 40 % de las respuestas fueron
una calificación de más de 5 (Guías de Make It Real, s. f.).
Mediana
La mediana es el valor del medio de un conjunto de datos que ha sido ordenado del más pequeño
al más grande. Si el largo del conjunto de datos es un número impar, la mediana sería el valor
central. Utilizaremos la función «np.median()»
Muestra la mediana:
3.0
Desviación estándar
La desviación estándar nos dice qué tan dispersos están nuestros datos.
A mayor desviación estándar, más dispersos están nuestros datos del centro.
A menor desviación estándar, más datos están agrupados alrededor de la media.
>>> np.std(numeros)
17.716909687891082
Operaciones lógicas
«Greater»
Ingresamos en el intérprete:
Ahora usamos la función «np.greater()» para hacer la comparación de cada elemento del arreglo
a con el de b, en el orden en que fueron ingresados:
>>> print(np.greater(a,b))
Muestra lo siguiente:
Less
less_equal
not_equal
Equal
logical_and
logical_or
logical_xor
logical_not
Máximum
Mínimum
Cos
La función numpy.cos devuelve el coseno de los elementos de la estructura de entrada.
Tan
Arcsin
Arccos
Arctan
deg2rad
Cortes
Un corte, usualmente, contiene una porción de una secuencia.
Para recuperar un solo valor, se utiliza la indexación. Para recuperar una colección de valores, se
usa el corte.
Muestra:
array([2, 3, 4, 5, 6, 7, 8])
La diversidad de operaciones complejas en arreglos que nos ayuda a realizar NumPy son
de gran valor en el campo del procesamiento de datos y son tan diversas que lo visto
hasta ahora es un solo un ejemplo de todo su potencial.
Actividades de repaso
Tenemos el siguiente array:
>>> a = np.array([144,81,16,49])
Si ingresamos este código:
>>> np.sqrt(a)
array([12.,9.,4.,7.])
array([12.,7.,4.,9.])
array([ 7.,4.,9.,12.])
array([ 12.,9.,4.,7.])
Justificación
Mediana.
Desviación estándar.
Media.
Justificación
Como vimos en el primer módulo, la librería Pandas (en particular, sus objetos Series y
DataFrame) se basa en la estructura de matriz NumPy y brinda acceso eficiente a este tipo de
tareas de "transferencia de datos" que son grandes consumidoras de tiempo para el data
scientist.
Entonces, para el trabajo en el área del procesamiento de datos, Pandas es una herramienta de
análisis y manipulación de datos de código abierto rápida, potente y flexible.
Pandas permite realizar tareas importantes, como alinear datos para su comparación, fusionar
conjuntos de datos, gestión de datos perdidos, etc. Se ha convertido en una librería muy
importante para procesar datos a alto nivel.
La página web oficial de Pandas ofrece información para instalarlo, documentación y acceso a los
desarrollos de la comunidad de usuarios: https://pandas.pydata.org/
Es necesario importar la librería para poder trabajar con ella, ingresando al comienzo lo siguiente
en el intérprete:
La estructura de datos más básica de Pandas es el objeto Series. Un vector etiquetado capaz
de contener cualquier tipo de dato (enteros, reales, cadenas de texto, fechas, objetos de Python)
con etiquetas que se denominan índices.
Los objetos DataFrame de Pandas son una estructura de datos de alto rendimiento con la que es
posible manejar fácilmente datos tabulares para el análisis de datos.
En estos objetos, cada una de las filas representa un registro, mientras que cada una de las
columnas representan variables, a las que generalmente se les asigna un nombre. Es una tarea
habitual seleccionar de forma rápida tanto filas como columnas.
A continuación, estudiaremos con más profundidad estas dos importantes estructuras de datos de
Pandas.
Tema 2. Series y DataFrames en Pandas
Series
Series es la estructura más simple que proporciona Pandas y se asemeja a una columna en una
hoja de cálculo de Excel.
Un objeto Series tiene dos componentes principales: un índice y un vector de datos. Ambos
componentes son listas con la misma longitud.
El índice contiene valores únicos y, por lo general, ordenados, y se usa para acceder a valores
individuales de los datos.
Figura 21: Esquema de un objeto Series
s = pd.Series(data, index=index)
Aquí un dato puede ser diversas cosas: un diccionario de Python, un «ndarray», un valor escalar
(ejemplo 5).
data: estructura de datos tipo array, iterable, diccionario o valor escalar que contendrá los
valores a introducir en la serie.
index: estructura tipo array con la misma longitud que los datos. Si este argumento no se
añade al crear la serie, se agrega un índice por defecto formado por números enteros desde
0 hasta n-1, donde n es el número de datos.
«dtype»: tipo de datos para la serie. Si no se especifica, será inferido por el sistema a partir
de los datos.
Nos muestra:
0 2
1 4
2 5
dtype: int64
Figura 22: Creación de una serie a partir de una lista o de un array NumPy
El «dtype:int 64» que aparece al final representa el tipo de datos para la serie. Como no se
especificó el tipo de datos con el «dtype», es inferido a partir de los datos.
(Con frecuencia, en Python, verás el tipo de dato Int64, que representa un entero de 64 bits).
Especificación de índice
Ahora, siguiendo este mismo ejemplo anterior, vamos a especificar un índice:
Nos muestra:
Ene 7
Feb 5
Mar 3
dtype: int64
b 1
a 0
c 2
dtype: int64
Observa que hemos creado una estructura tipo diccionario en Python: d = {"b": 1, "a": 0, "c":
2}
El diccionario físico es un objeto que contiene palabras y cada palabra tiene asociado un
significado.
En Python, un diccionario es también un objeto indexado por claves (las palabras) que tienen
asociados unos valores (los significados).
Los diccionarios en Python nos permiten almacenar una serie de mapeos entre dos conjuntos de
elementos, llamados keys and values (claves y valores).
Cada elemento en un diccionario contiene una clave y un valor, es decir, un par de clave-valor.
La ventaja de esto es que podemos acceder a todos los valores almacenados usando
simplemente las claves.
Entonces, un diccionario en Python es una estructura de datos que permite almacenar cualquier
tipo de información, desde cadenas de texto o caracteres hasta números enteros, con decimales,
listas e incluso otros diccionarios.
En este ejemplo, se ha creado un objeto Series que contiene caracteres indexados por números
enteros obtenidos mediante la llamada «range()».
Recordemos que, en Python, el primer elemento de una lista siempre comienza en el índice
0, por eso, al pedirle «print(s[1])» nos muestra el elemento b en la serie.
Método «Series.apply»
El método «pandas.Series.apply» permite aplicar a cada uno de los elementos de la serie una
función. Esta deberá aceptar un único valor como argumento y devolver también un único valor.
El resultado es también una serie Pandas.
Hemos creado una serie con las temperaturas habituales en verano de tres ciudades.
Figura 24: Método «Series.apply»
Ahora, vamos a elevar al cuadrado los valores, definiendo una función y pasándola como
un argumento «Series.apply()»
Python utiliza la indentación para delimitar la estructura, lo que permite establecer bloques de
código. Los delimitadores son los dos puntos ( : ) y la indentación del código.
DataFrame en Pandas
En el punto anterior, vimos la clase Series de Pandas, que representa vectores de datos y se
asemeja a una columna de una hoja de cálculo de Excel.
Siguiendo con esa analogía, la clase DataFrame representaría una hoja de cálculo completa, en
la que cada columna es un objeto Series.
DataFrame (“hoja de datos o marco de datos”) son paneles bidimensionales compuestos por filas
y columnas que permiten destacar las relaciones entre las distintas variables de la serie de datos.
Los valores de los índices de filas y columnas no tienen porque ser necesariamente distintos.
Creación de un DataFrame
Veamos este ejemplo con el intérprete, crearemos el siguiente DataFrame usando el constructor:
«pd.DataFrames».
Hemos pasado al constructor «pd.DataFrames» un diccionario y una lista: las claves del
diccionario serán los nombres de las columnas, sus valores, los valores de las columnas y
los valores de la lista se convertirán en las etiquetas de filas.
Una columna solo puede contener un tipo de datos, pero cada columna del DataDrame puede
contener un tipo de datos diferente.
Tanto el índice de filas como el de columnas poseen el atributo «name». Una vez fijado, se
muestra al imprimir la estructura. Dentro de este mismo ejemplo, ingresemos ahora el nombre de
la primera columna (índex):
>>> ventas.index.name='Meses'
Meses
Ene 41 17
Feb 32 54
Mar 56 78
El atributo «loc» permite acceder a una fila concreta (o varias) a través de su nombre.
Tenemos una lista de tres listas con cuatro valores cada una que representa, por
ejemplo, la siguiente tabla de datos:
10 11 12 13
20 21 22 23
30 31 32 33
Este código genera el siguiente resultado por pantalla (por defecto, los nombres de las
columnas son 0, 1, 2 y 3 y los de las filas son 0, 1, y 2).
0 1 2 3
0 10 11 12 13
1 20 21 22 23
2 30 31 32 33
Fíjate que cada fila del DataFrame corresponde con cada fila de la lista de listas original.
(Código Pitón, s. f., http://bit.ly/3kP6XHG)
Transponer filas por columnas
Si queremos que cada fila de la lista de listas pase a ser una columna en el DataFrame
tendremos que transponer el DataFrame, es decir, intercambiar filas por columnas a la hora de
crearlo, usando la función «transpose», de esta manera, df = pd.DataFrame().transpose().
>>> df = pd.DataFrame(datos)
Ingresamos:
>>> df = pd.DataFrame(datos).transpose()
0 1 2
0 10 20 30
1 11 21 31
2 12 22 32
3 13 23 33
Actividad de repaso
Ingresamos lo siguiente en el intérprete:
>>> import pandas as pd
>>> s=pd.Series([2,9,12])
>>> s
¿Cuál de estas opciones será la salida?
Opción A:
2
9
12
dtype: int64
Opción B:
1 2
2 9
3 12
dtype: int64
Opción C:
0 2
1 9
2 12
dtype: int64
Opción A.
Opción B.
Opción C.
Justificación
El formato CSV (Comma Separated Values o valores separados por comas) es un método muy
extendido y simple para compartir datos. Son archivos de texto que contienen una tabla de datos,
en las que cada línea es una fila y, en cada fila, cada valor se asigna a una columna mediante un
separador.
Los separadores deben ser caracteres que no aparezcan en los datos, por ejemplo, una coma (el
separador más usado, de ahí el nombre de CSV), un espacio en blanco o un punto y coma
(usado por defecto en los CSV de Excel).
Los archivos CSV se utilizan en muchas áreas, algunos ejemplos son los siguientes:
catálogos de productos de las tiendas online;
exportación de datos desde una herramienta de software de SEO (optimización en motores
de búsqueda), herramientas de reanálisis o herramientas de análisis web como Google
Analytics para su posterior procesamiento con sus propios programas o informes;
importación de productos para portales de comparación de precios o portales de compras
como Google Shopping o Amazon Product Ads;
exportación de datos para la provisión de datos entregados a través de CSS (hojas de estilo
en cascada);
exportación de listas de URL para su posterior procesamiento con las herramientas de
análisis adecuadas; y
provisión de listas de productos para marketing de afiliación o retargeting.
Un archivo CSV se puede crear desde Notepad o Microsoft Excel y guardarlo como .csv, en este
caso, puede utilizar comas para separar entre campos.
Se utiliza:
La lectura de los archivos se realiza con el método «read_csv» de Pandas. Se debe indicar la
ruta al archivo.
>>> df = pd.read_csv('example.csv')
>>> df
df.to_csv('example_semicolon.csv', sep=';')
Actividad de repaso
¿Qué función se usa en Pandas para cargar los contenidos del archivo
CSV en un DataFrame?
«DataFrame.to_csv()»
«pd.read_csv()»
Justificación
Algunos sistemas de gestión de bases de datos relacionales comunes que utilizan SQL son:
Oracle, MySQL, Microsoft SQL Server, Access, Ingres, etc.
Los archivos con la extensión SQL contienen código escrito en el lenguaje de consulta
estructurada. El código contenido en el archivo SQL se utiliza para modificar el contenido de otras
bases de datos relacionales. Los archivos SQL pueden utilizarse para eliminar, insertar, extraer y
actualizar datos e información.
Una base de datos SQL está formada por tablas con filas y columnas. En las filas, figuran los
diferentes registros de la tabla, mientras que las columnas corresponden a los campos.
Fuente: [imagen sin título sobre relaciones de tablas en SQL], (2014), http://bit.ly/3ZlHuoo
SQL maneja diversos tipos de datos: Bit, Char, DateTime, Decimal, Float, Entero, Money,
Numeric.
Como podemos observar, los archivos SQL son de una complejidad mucho mayor que los
archivos CSV.
Por esto, los requerimientos previos para establecer relaciones entre los archivos SQL y
los DataFrame de Pandas son mayores y se requieren más conocimientos iniciales sobre
el entorno de las bases de datos SQL.
Cargar los contenidos de una tabla SQL en un DataFrame: se usa la función de «pd
read_sql()».
Cargar registros de un DataFrame en una base de datos SQL: se usa la función de
«DataFrame.to_sql».
La función devolverá el DataFrame con los datos correspondientes listo para usar.
A continuación, con la conexión ya establecida, abrimos una tabla o ejecutamos una query
SQL con el método DataFrame.read_sql():
En esta consulta utilizamos la tabla completa, pero podemos ejecutar una query SQL (una
query es una consulta). Le solicitaremos que nos muestre solo los datos de aquellos registros
cuyo campo edad contiene el dato: mayor de 18 años.
Ingresamos lo siguiente:
Muestra lo siguiente:
Observamos que los datos del usuario Bob no aparecen porque no cumple con la
condición: Age>18
Una vez que los datos están en el objeto DataFrame, podremos manipularlos con las diversas
funciones que ofrece Pandas.
Por ejemplo, podemos crear una nueva columna en el DataFrame que nos muestre solo el
dominio del correo electrónico (la parte de la dirección de correo electrónico que sigue al
símbolo '@').
Podemos guardar los resultados de nuevo en una base de datos con «DataFrame.to_sql».
(Podemos crear una tabla nueva, sobreescribir una existente o concatenar los datos).
Para cargar registros de un DataFrame en una base de datos SQL, se usa la función de
«DataFrame.to_sql».
Ejemplo:
Excel («pd.read_excel»)
JSON («pd.read_json»)
HTML («pd.read_html»)
Pandas puede leer y escribir archivos de Excel, pero esto solo puede importar datos, no fórmulas
o imágenes. Si contiene imágenes o macros, puede hacer que el método «pd.read_excel» se
bloquee.
Actividad de repaso
¿Cuál función se usa en Pandas para cargar los registros de un DataFrame
en una base de datos SQL?
«DataFrame.to_sql()»
«pd.read_sql()»
Justificación
Cierre
Ahora que hemos estado estudiando dos librerías fundamentales de Python: NumPy y Pandas,
tenemos más conocimientos y conocemos más herramientas de Python para manipular y
procesar datos.
En el rol de técnico en Data Science, será una tarea que realizaremos constantemente.
Esto se debe a que nuestra principal herramienta de trabajo es esa: los datos y su proceso.
Para poder brindar un buen servicio como profesionales, debemos poder distinguir aquello que
puede convertirse en información y aquello que no aporta nada al proyecto.
Video de habilidades
Según lo visto en el video, ¿cuál de las siguientes afirmaciones sobre
Pandas te parece más acertada?
Justificación
DataFrame.to_csv()
pd.read_csv():
>>> df = pd.read_csv('example.csv')
Queremos filtrar los datos del dataframe para mostrar solo las películas de
acción. ¿Cómo lo harías?
print(df.head())
df.to_csv('nuevo_archivo.csv', index=False)
Porque los índices deben comenzar en un valor impar para garantizar la integridad
de los datos.
Para hacer que las operaciones matemáticas y estadísticas sean más complicadas.
Justificación
Referencias
[Imagen sin título sobre relaciones de tablas en SQL]. (2014).
https://www.incanatoit.com/2014/12/crear-base-datos-sql-server-2014.html
Código Pitón. (s. f.). Cómo Crear un DataFrame con Pandas y Python.
https://www.codigopiton.com/como-crear-un-dataframe-con-pandas-y-python/#3-c%C3%B3mo-
insertar-datos-en-un-dataframe-
Khatib, E. J. (s. f.). Crear objetos DataFrame desde bases de datos SQL.
https://www.emilkhatib.es/crear-objetos-dataframe-desde-bases-de-datos-sql/