SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
2. Trabajando con datos en Python
En esta lección aprenderás a leer y escribir archivos con Open; cargar, trabajar y guardar
datos con Pandas.
2.1 Leer archivos con Open
En esta sección, utilizaremos la función "open" integrada en Python para crear un objeto
file (archivo) y obtener los datos de un archivo "txt".
Usaremos la función open de Python para obtener un objeto file.
Podemos aplicar un método a ese objeto para leer los datos del archivo.
Podemos abrir el archivo, Example1.txt, de la siguiente manera.
Usamos la función open.
El primer argumento es la ruta del archivo.
Está compuesto por el nombre del archivo y el directorio del mismo.
El segundo parámetro es el modo.
Los valores que se utilizan comúnmente son "r" para lectura, “w" para escritura, y "a" para
añadir.
Usaremos 'r' para la lectura.
Finalmente, tenemos el objeto file.
Ahora podemos usar el objeto file para obtener información sobre el archivo.
Podemos utilizar el atributo de datos name (nombre) para obtener el nombre del archivo.
El resultado es una cadena que contiene el nombre del archivo.
Podemos ver en qué modo está el objeto usando el atributo de datos mode (modo), y se
muestra 'r' indicando lectura.
Siempre debes cerrar el objeto file usando el método close (cerrar).
Esto a veces puede resultar tedioso, así que usaremos la sentencia "with" (con).
Usar una declaración "with" para abrir un archivo es una buena práctica porque cierra el
archivo automáticamente.
El código ejecutará todo lo que hay en el bloque con sangrado y luego cerrará el archivo.
Este código lee el archivo, Example1.txt.
Podemos usar el objeto file, "File1."
El código realizará todas las operaciones en el bloque con sangrado y luego cerrará el
archivo al final del sangrado.
El método "read" (leer) almacena los valores del archivo en la variable "file_stuff"
(cosas_del_fichero) como una cadena.
Puedes imprimir el contenido del archivo.
Puedes comprobar si el contenido del archivo está cerrado, pero no puedes leerlo desde
fuera del sangrado.
Pero también puedes imprimir el contenido del archivo fuera del sangrado.
Podemos imprimir el contenido del archivo.
Veremos lo siguiente.
Cuando examinemos la cadena en bruto, veremos la "n".
Esto es para que Python sepa que debe empezar una nueva línea.
Podemos imprimir cada línea como un elemento de una lista usando el método
"readlines" (leer líneas).
La primera línea corresponde al primer elemento de la lista.
La segunda línea corresponde al segundo elemento de la lista, y así sucesivamente.
Podemos usar el método "readline" para leer la primera línea del archivo.
Si ejecutamos este comando, almacenará la primera línea en la variable "file_stuff" y
luego imprimirá la primera línea.
Podemos usar el método "readline" dos veces.
La primera vez que se llame, guardará la primera línea en la variable "file_stuff" y luego
imprimirá la primera línea.
La segunda vez que se llame, guardará la segunda línea en la variable "file_stuff" y luego
imprimirá la segunda línea.
Podemos usar un bucle para imprimir cada línea individualmente de la siguiente manera.
Representemos cada carácter de una cadena como una cuadrícula.
Podemos especificar el número de caracteres que queremos leer de la cadena como
argumento del método "readlines".
Cuando usamos un cuatro como argumento en el método "readlines", imprimimos los
primeros cuatro caracteres del archivo.
Cada vez que llamemos al método avanzaremos por el texto.
Si llamamos al método con el argumento 16, se imprimen los primeros 16 caracteres y
luego la nueva línea.
Si llamamos al método por segunda vez, se imprimen los cinco caracteres siguientes.
Finalmente, si llamamos al método por última vez con el argumento nueve, se imprimen
los últimos nueve caracteres.
Consulta los Laboratorios para ver más ejemplos de métodos y otros tipos de archivos.
2.1.1 Usando loc, iloc, e ix
Usando loc, iloc y ix
Hay tres formas de seleccionar datos de un dataframe en Pandas: loc, iloc, y ix.
loc
loc se basa principalmente en etiquetas; cuando se usan dos argumentos, usa
encabezados de columna e índice de fila para seleccionar los datos que desea. loc también
puede tomar un número entero como un número de fila o columna.
Ejemplos de uso de loc:
loc devolverá un KeyError si no se encuentran los elementos solicitados.
iloc
iloc está basado en enteros. Utiliza números de columna y números de fila para obtener
filas o columnas en posiciones particulares en el dataframe.
Ejemplos de uso de iloc:
iloc devolverá un IndexError si el indexador solicitado está fuera de los límites.
ix
Por defecto, ix busca una etiqueta. Si ix no encuentra una etiqueta, usará un entero. Esto
significa que puede seleccionar datos usando números de columna y números de fila o
encabezados de columna y nombres de fila usando ix.
En Pandas versión 0.20.0 y posterior, ix está en desuso.
Usando loc y iloc para cortar
También puede usar loc y iloc para cortar dataframes y asignar valores a un nuevo
dataframe.
Crear un nuevo dataframe con corte loc
También puede dividir dataframes y asignar los valores a un nuevo dataframe utilizando
los nombres de columna. El código asigna las primeras tres filas y todas las columnas
intermedias a las columnas llamadas Artist y Released. El resultado es un nuevo dataframe
Z con los valores correspondientes.
Crear un nuevo dataframe con corte iloc
En este ejemplo, asignamos las dos primeras filas y las primeras tres columnas a la
variable Z. El resultado es un dataframe compuesto por las filas y columnas
seleccionadas.
2.2 Cargar datos con Pandas
Dependencias o librerías son un código ya escrito para ayudar a resolver problemas.
En este vídeo, presentaremos Pandas, una popular librería para el análisis de datos.
Podemos importar la librería o una dependencia como Pandas usando el siguiente
comando.
Empezamos con el comando import y seguimos con el nombre de la librería.
Ahora tenemos acceso a un gran número de clases y funciones preconstruidas.
Esto presupone que la librería está instalada.
En nuestro entorno de laboratorio, todas las librerías necesarias están instaladas.
Digamos que queremos cargar un archivo CSV usando la función incorporada de Pandas,
read_csv.
Un CSV es un tipo de archivo típico utilizado para almacenar datos.
Simplemente tecleamos la palabra Pandas, luego un punto y el nombre de la función con
todas las entradas.
Escribir Pandas todo el tiempo puede ser tedioso.
Podemos usar la sentencia "as" para acortar el nombre de la librería.
En este caso, usamos la abreviatura estándar, pd.
Ahora escribimos pd y un punto, seguido del nombre de la función que queremos usar.
En este caso, read_csv.
No nos limitamos a la abreviatura pd.
En este caso, usamos el término banana.
Nos quedaremos con pd para el resto del vídeo.
Examinemos este código más a fondo.
Una forma en la que Pandas permite trabajar con datos es con el marco de datos (data
frame).
Repasemos el proceso para pasar de un archivo CSV a un marco de datos.
Esta variable almacena la ruta del CSV.
Se utiliza como argumento de la función read_csv.
El resultado se almacena en la variable df.
Esta es la abreviatura de marco de datos.
Ahora que tenemos los datos en un marco de datos, podemos trabajar con ellos.
Podemos usar el método "head" para examinar las primeras cinco filas de un marco de
datos.
El proceso para cargar un archivo de Excel es similar.
Usamos la ruta del archivo de Excel.
La función lee Excel.
El resultado es un marco de datos.
Un marco de datos está compuesto de filas y columnas.
Podemos crear un marco de datos a partir de un diccionario.
Las claves corresponden a las etiquetas de las columnas.
Los valores o listas corresponden a las filas.
A continuación, convertimos el diccionario en un marco de datos utilizando la función
DataFrame.
Podemos ver la correspondencia directa con la tabla.
Las claves corresponden a los encabezados de la tabla.
Los valores son listas correspondientes a las filas.
Podemos crear un nuevo marco de datos que consiste en una columna.
Sólo ponemos el nombre del marco de datos, en este caso, df, y el nombre de la cabecera
de la columna entre corchetes dobles.
El resultado es un nuevo marco de datos compuesto por la columna original.
Puedes hacer lo mismo para múltiples columnas.
Sólo ponemos el nombre del marco de datos, en este caso, df, y el nombre de las
cabeceras de las múltiples columnas entre dobles corchetes.
El resultado es un nuevo marco de datos compuesto por las columnas especificadas.
Una forma de acceder a los elementos únicos es el método "ix".
Se puede acceder a la primera fila y a la primera columna de la siguiente manera.
Puedes acceder a la segunda fila y a la primera columna de la siguiente manera.
Puedes acceder a la primera fila y a la tercera columna de la siguiente manera.
Puedes acceder a la segunda fila, tercera columna de la siguiente manera.
Si también utilizas el nombre de la columna, puedes acceder a la primera fila de la
columna llamada Artist de la siguiente manera.
Del mismo modo, puedes acceder a la segunda fila de la columna denominada Artist.
Puedes acceder a la primera fila de la columna denominada Released (Publicado) de la
siguiente manera.
Por último, puedes acceder a la segunda fila de la columna denominada Released.
También puedes dividir marcos de datos y asignar los valores a un nuevo marco de datos.
Asignamos las dos primeras filas y las tres primeras columnas a la variable Z.
El resultado es un marco de datos compuesto por las filas y columnas seleccionadas.
También puedes dividir los marcos de datos y asignar los valores a un nuevo marco de
datos utilizando los nombres de las columnas.
El código asigna las tres primeras filas y todas las columnas intermedias a las columnas
denominadas Artist y Released.
El resultado es un nuevo marco de datos Z con los valores correspondientes.
2.3 Trabajar y guardar datos con Pandas
Cuando tenemos un dataframe podemos trabajar con los datos y guardar los resultados
en otros formatos.
Considera la pila de 13 bloques de diferentes colores.
Podemos ver tres colores únicos.
Supongamos que desea saber cuántos elementos únicos hay en una columna de un
dataframe.
Esto puede ser más difícil porque en lugar de 13 elementos quizás tenga millones.
Pandas tiene el único método para determinar los elementos únicos en una columna de
un dataframe.
Digamos que nos gustaría determinar el año único de los álbumes en el conjunto de datos.
Ingresamos el nombre del dataframe, luego ingresaremos el nombre de la columna
‘Released’ entre corchetes.
Luego aplicaremos el método único.
El resultado es de todos los elementos únicos en la columna ‘Released’.
Vamos a decir que nos gustaría crear una nueva base datos que consista en canciones
desde 1980's y después.
Podemos buscar en la columna ‘Released’ canciones hechas después de 1979, luego
seleccionar las columnas correspondientes.
Podemos hacer esto dentro de una línea de código en Pandas, pero separemos los pasos.
Podemos usar los operadores de desigualdad para todo el dataframe en pandas.
El resultado es una serie de valores booleanos.
En nuestro caso, simplemente podemos especificar la columna ‘Released’ y la desigualdad
para los álbumes después de 1979.
El resultado es una serie de valores booleanos.
El resultado es verdadero cuando la condición es verdadera y falsa de lo contrario.
Podemos seleccionar las columnas especificadas en una línea, simplemente usemos los
nombres del dataframe y entre corchetes colocamos la desigualdad mencionada
anteriormente y la asignamos a la variable df1.
Ahora tenemos un nuevo dataframe, donde cada álbum fue lanzado después de 1979.
Podemos guardar el nuevo dataframe utilizando el método to_csv.
El argumento es el nombre del archivo csv.
Asegúrate de incluir una extensión de punto csv.
Hay otras funciones para guardar el dataframe en otros formatos.
3 Trabajando con matrices Numpy
El objetivo de aprendizaje es mostrar cómo usar NumPy para crear matrices
multidimensionales y hacer una introducción a la API.
2.2 Numpy de una dimensión
En esta lección cubriremos NumPy en 1D (una dimensión), en particular los arrays ND.
NumPy es una librería para computación científica.
Tiene muchas funciones útiles.
Existen muchas otras ventajas como la velocidad y la memoria.
NumPy también es la base para Pandas.
Así que echa un vistazo a nuestro video sobre Pandas.
En este video cubriremos lo básico y la creación, indexación y división de arrays,
operaciones básicas, funciones universales.
Repasemos cómo crear un array NumPy.
Una lista Python es un contenedor que permite almacenar y acceder a los datos.
Cada elemento está asociado a un índice.
Podemos acceder a cada elemento usando un corchete como se ve a continuación.
Un array NumPy o un array ND es similar a una lista.
Normalmente es de tamaño fijo y cada elemento es del mismo tipo, en este caso enteros.
Podemos convertir una lista a un array NumPy importando primero NumPy.
Luego, convertimos la lista de la siguiente manera; podemos acceder a los datos mediante
un índice.
Al igual que con la lista, podemos acceder a cada elemento con un número entero y un
corchete.
El valor de "a" se almacena de la siguiente manera.
Si comprobamos el tipo del array que obtenemos, Numpy. ndarray, como los arrays
NumPy contienen datos del mismo tipo, podemos usar el atributo dtype para obtener el
tipo de datos de los elementos del array.
En este caso un entero de 64 bits.
Revisemos algunos atributos básicos del array usando el array "a".
El atributo size es el número de elementos del array.
Como hay cinco elementos el resultado es cinco.
Los dos atributos siguientes tendrán más sentido cuando lleguemos a dimensiones
mayores, pero vamos a revisarlos.
El atributo ndim representa el número de dimensiones del array o el rango del array, en
este caso uno.
El atributo shape es una tupla de números enteros que indican el tamaño del conjunto en
cada dimensión.
Podemos crear un array NumPy con números reales.
Cuando comprobamos el tipo del array, obtenemos numpy.ndarray.
Si examinamos el atributo dtype, vemos float64 ya que los elementos no son enteros.
Hay muchos otros atributos, consulta numpy.org.
Revisemos algunos métodos de indexación y división.
Podemos cambiar el primer elemento del array a 100 de la siguiente manera.
El primer valor del array es ahora 100.
Podemos cambiar el quinto elemento del array de la siguiente manera.
El quinto elemento es ahora cero.
Al igual que con las listas y las tuplas podemos dividir un array de NumPy.
Los elementos del array corresponden al siguiente índice.
Podemos seleccionar los elementos de uno a tres y asignarlos a un nuevo array NumPy "d"
de la siguiente manera.
Los elementos de "d" corresponden al índice.
Al igual que las listas, no contamos el elemento correspondiente al último índice.
Podemos asignar los índices correspondientes a los nuevos valores de la siguiente manera.
El array "c" tiene ahora nuevos valores.
Consulta los laboratorios o numpy.org para ver más ejemplos de lo que puedes hacer con
NumPy.
NumPy facilita la realización de muchas operaciones que se realizan comúnmente en
ciencia de datos.
Las mismas operaciones suelen ser más rápidas desde el punto de vista computacional y
requieren menos memoria en NumPy en comparación con el Python normal.
Revisemos algunas de estas operaciones en arrays unidimensionales.
Veremos muchas de las operaciones en el contexto de los vectores euclidianos para hacer
las cosas más interesantes.
La suma de vectores es una operación que se utiliza ampliamente in data science.
Consideremos el vector "u" con dos elementos, los elementos se distinguen por los
diferentes colores.
De manera similar, consideremos el vector "v" con dos componentes.
En la adición de vectores, creamos un nuevo vector en este caso "z".
El primer componente de "z" es la suma del primer componente de los vectores "u" y "v".
De manera similar, el segundo
componente es la suma de los segundos componentes de "u" y "v". Este nuevo vector "z"
es ahora una combinación lineal del vector "u" y "v". Es útil representar la suma de los
vectores con un segmento de línea o flechas.
El primer vector se representa en rojo, el vector apuntará en la dirección de los dos
componentes.
El primer componente del vector es uno.
Como resultado, la flecha está desplazada una unidad desde el origen en la dirección
horizontal.
El segundo componente es cero, representamos este componente en la dirección vertical.
Como este componente es cero, el vector no apunta en la dirección horizontal.
Representamos el segundo vector en azul.
El primer componente es cero, por lo tanto, la flecha no apunta a la dirección horizontal.
El segundo componente es uno.
Como resultado el vector apunta en la dirección vertical una unidad.
Cuando sumamos los vectores "u" y "v", obtenemos el nuevo vector "z".
Sumamos el primer componente, que corresponde a la dirección horizontal.
También añadimos el segundo componente.
Resulta útil emplear el método de punta a cola cuando se suman vectores, colocando la
cola del vector "v" en la punta del vector "u".
El nuevo vector "z" se construye conectando la base del primer vector "u" con la cola del
segundo "v".
En las siguientes tres líneas de código sumaremos las dos listas y pondremos el resultado
en la lista "z".
También podemos realizar la adición de vectores con una línea de código NumPy.
Se necesitarían varias líneas para realizar la resta de vectores en dos listas, como se
muestra en la parte derecha de la pantalla.
Además, el código NumPy se ejecutará mucho más rápido.
Esto es importante si tienes muchos datos.
También podemos realizar la substracción vectorial cambiando el signo de adición por un
signo de resta.
La resta vectorial en dos listas requeriría múltiples líneas, como se muestra en la parte
derecha de la pantalla.
La multiplicación de vectores con un escalar es otra operación que se realiza con
frecuencia.
Consideremos el vector "y", cada componente se especifica con un color diferente.
Simplemente multiplicamos el vector por un valor escalar, en este caso dos.
Cada componente del vector se multiplica por dos, en este caso cada componente se
duplica.
Podemos usar el segmento de línea o las flechas para visualizar lo que sucede.
El vector original "y" es de color púrpura.
Después de multiplicarlo por un valor escalar de dos, el vector se estira por dos unidades
como se muestra en rojo.
El nuevo vector es el doble de largo en cada dirección.
La multiplicación del vector con un escalar sólo requiere una línea de código utilizando
NumPy.
Harían falta múltiples líneas para realizar la misma tarea que se muestra con las listas de
Python, como se ve en la parte derecha de la pantalla.
Además, la operación también sería mucho más lenta.
El producto Hadamard es otra operación ampliamente utilizada en ciencia de datos.
Consideremos los dos vectores siguientes, "u" y "v". El producto hadamard de "u" y "v" es
un nuevo vector "z".
El primer componente de "z" es el producto del primer elemento de "u" y "v".
Análogamente, el segundo componente es el producto del segundo elemento de "u" y "v".
El vector resultante consiste en el producto Entrywise de "u" y "v".
También podemos realizar el producto hadamard con una línea de código en NumPy.
Se necesitarían múltiples líneas para realizar el producto hadamard en las dos listas que se
muestran en la parte derecha de la pantalla.
El producto Dot es otra operación ampliamente utilizada en ciencia de datos.
Consideremos el vector "u" y "v", el producto dot es un número único dado por el
siguiente término y representa cuán similares son dos vectores.
Multiplicamos el primer componente de "v" y "u", luego multiplicamos el segundo
componente y sumamos el resultado.
El resultado es un número que representa lo similares que son los dos vectores.
También podemos realizar el producto dot usando la función NumPy dot y asignarlo con el
resultado de la variable de la siguiente manera.
Consideremos el array "u", el array contiene los siguientes elementos.
Si sumamos un valor escalar al array, NumPy sumará ese valor a cada elemento.
Esta propiedad se conoce como difusión (broadcasting).
Una función universal es una función que realiza operaciones en los arrays ND.
Podemos aplicar una función universal a un array NumPy.
Consideremos el array "a", podemos calcular el valor medio o promedio de todos los
elementos en a usando el método mean.
Esto corresponde a la media de todos los elementos.
En este caso el resultado es cero.
Hay muchas otras funciones.
Por ejemplo, consideremos el array NumPy "b".
Podemos encontrar el valor máximo usando el método, cinco.
Vemos que el valor máximo es cinco, por lo tanto, el método max devuelve un cinco.
Podemos usar NumPy para crear funciones que asignen los arrays de NumPy a nuevos
arrays de NumPy.
Vamos a escribir algo de código en el lado izquierdo de la pantalla y a usar el lado derecho
de la pantalla para demostrar lo que está pasando.
Podemos acceder al valor de pi en NumPy de la siguiente manera.
Podemos crear el siguiente array de NumPy en radianes.
Este array corresponde al siguiente vector.
Podemos aplicar la función sin al array "x" y asignar los valores a la matriz "y" Esto aplica
la función seno a cada elemento del array, esto corresponde a aplicar la función seno a
cada componente del vector.
El resultado es un nuevo array "y", en el que cada valor corresponde a una función seno
que se aplica a cada elemento del array x.
Una función útil para trazar funciones matemáticas es linspace (espacio lineal).
Linspace devuelve números espaciados uniformemente a lo largo de un intervalo
especificado.
Especificamos el punto de inicio de la secuencia,
el punto final de la secuencia.
El parámetro num indica el número de muestras a generar, en este caso cinco.
El espacio entre las muestras es uno.
Si cambiamos el parámetro num a nueve, obtenemos nueve números espaciados
uniformemente sobre la integral, desde dos negativos a dos.
El resultado es que la diferencia entre las muestras subsiguientes es de 0,5 en lugar de
uno como antes.
Podemos utilizar la función linspace para generar 100 muestras espaciadas
uniformemente desde el intervalo cero a dos.
Podemos usar la función seno de NumPy para mapear el array "x" a un nuevo array "y".
Podemos importar la librería pyplot como plt para ayudarnos a dibujar la función.
Como estamos usando un cuaderno Júpiter, usamos el comando matplotlib de manera
inline para mostrar el trazado.
El siguiente comando traza un gráfico.
La primera entrada corresponde a los valores del eje horizontal o "x".
La segunda entrada corresponde a los valores para el eje vertical o "y".
Se puede hacer mucho más con NumPy consulta www.NumPy.org para más información.
Recursos Complementarios
BIBLIOGRAFIA
https://docs.python.org/3/using/index.html
https://pandas.pydata.org/
https://numpy.org/
Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython -
Wes McKinney (Autor)

Más contenido relacionado

La actualidad más candente

Manejo de archivosss
Manejo de archivosssManejo de archivosss
Manejo de archivossstaniarodri
 
Archivos aleatorios en java
Archivos aleatorios en javaArchivos aleatorios en java
Archivos aleatorios en javajent46
 
Listas, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130reyarturo16
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colasjorgeluis0317
 
Listas en C#
Listas en C#Listas en C#
Listas en C#rezzaca
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVAMichelle Torres
 
Entrada y Salida de datos en Java
Entrada y Salida de datos en JavaEntrada y Salida de datos en Java
Entrada y Salida de datos en Javakunno10
 
Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02Javier Alva
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaIngeniería Nica
 
Tema 10 www.fresymetal.com
Tema 10 www.fresymetal.comTema 10 www.fresymetal.com
Tema 10 www.fresymetal.comFresyMetal
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo Ctacubomx
 

La actualidad más candente (19)

Manejo de archivosss
Manejo de archivosssManejo de archivosss
Manejo de archivosss
 
Archivos aleatorios en java
Archivos aleatorios en javaArchivos aleatorios en java
Archivos aleatorios en java
 
Listas, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colas
 
Listas en C#
Listas en C#Listas en C#
Listas en C#
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Lab archivos
Lab archivosLab archivos
Lab archivos
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVA
 
Bibliotecas de c_
Bibliotecas de c_Bibliotecas de c_
Bibliotecas de c_
 
Entrada y Salida de datos en Java
Entrada y Salida de datos en JavaEntrada y Salida de datos en Java
Entrada y Salida de datos en Java
 
Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en Java
 
Teoria de listas
Teoria de listasTeoria de listas
Teoria de listas
 
ARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE CARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE C
 
Tema 10 www.fresymetal.com
Tema 10 www.fresymetal.comTema 10 www.fresymetal.com
Tema 10 www.fresymetal.com
 
Archivos en C
Archivos en CArchivos en C
Archivos en C
 
Unidad 3 Listas Java
Unidad 3 Listas JavaUnidad 3 Listas Java
Unidad 3 Listas Java
 
Bibliotecas existentes para_c_
Bibliotecas existentes para_c_Bibliotecas existentes para_c_
Bibliotecas existentes para_c_
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo C
 

Similar a A1 python 3 (20)

Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Obligatoria
ObligatoriaObligatoria
Obligatoria
 
Utilización de la clase math
Utilización de la clase mathUtilización de la clase math
Utilización de la clase math
 
02 introduccion a python
02 introduccion a python02 introduccion a python
02 introduccion a python
 
(86)resumen visual basic
(86)resumen visual basic(86)resumen visual basic
(86)resumen visual basic
 
Archivossin
ArchivossinArchivossin
Archivossin
 
Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
Clase 1 - Python
Clase 1 - PythonClase 1 - Python
Clase 1 - Python
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
Tema 5 arreglos y cadenas - lsia por gio
Tema 5   arreglos y cadenas - lsia por gioTema 5   arreglos y cadenas - lsia por gio
Tema 5 arreglos y cadenas - lsia por gio
 
Qbasic2
Qbasic2Qbasic2
Qbasic2
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
 
Implementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en TextoImplementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en Texto
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Texto
 
Ambiente
 Ambiente Ambiente
Ambiente
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 

Más de ElielMauricioEscobar (8)

Aa1 oa dis_webacc (1)_web_acces
Aa1 oa dis_webacc (1)_web_accesAa1 oa dis_webacc (1)_web_acces
Aa1 oa dis_webacc (1)_web_acces
 
A3 phyton
A3 phytonA3 phyton
A3 phyton
 
A1 python 4
A1 python 4A1 python 4
A1 python 4
 
A1 phyton
A1 phytonA1 phyton
A1 phyton
 
4 manejo de_metodos
4 manejo de_metodos4 manejo de_metodos
4 manejo de_metodos
 
2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)
 
1 clases y_objetos (2)
1 clases y_objetos (2)1 clases y_objetos (2)
1 clases y_objetos (2)
 
Req funcionales
Req funcionalesReq funcionales
Req funcionales
 

Último

Arquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSMArquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSMNaza59
 
Diseño de sifones y alcantarillas para obras hidraulicas
Diseño de sifones y alcantarillas para obras hidraulicasDiseño de sifones y alcantarillas para obras hidraulicas
Diseño de sifones y alcantarillas para obras hidraulicasRiegosVeracruz
 
Slaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdfSlaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdfslaimenbarakat
 
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura ModernaLe Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Modernasofpaolpz
 
APORTES Y CARACTERISTICAS DE LAS OBRAS DE CORBUSIER. MIES VAN DER ROHE
APORTES Y CARACTERISTICAS DE LAS OBRAS DE  CORBUSIER. MIES VAN DER ROHEAPORTES Y CARACTERISTICAS DE LAS OBRAS DE  CORBUSIER. MIES VAN DER ROHE
APORTES Y CARACTERISTICAS DE LAS OBRAS DE CORBUSIER. MIES VAN DER ROHEgonzalezdfidelibus
 
Proceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimientoProceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimientoJorge Fernandez
 
Presentacion de 100 psicologos dijeron.pptx
Presentacion de 100 psicologos dijeron.pptxPresentacion de 100 psicologos dijeron.pptx
Presentacion de 100 psicologos dijeron.pptxbarbaracantuflr
 
diseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidaddiseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidaddabuitragoi
 
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfCERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfasnsdt
 
Arquitectura Moderna Walter Gropius- Frank Lloyd Wright
Arquitectura Moderna  Walter Gropius- Frank Lloyd WrightArquitectura Moderna  Walter Gropius- Frank Lloyd Wright
Arquitectura Moderna Walter Gropius- Frank Lloyd Wrightimariagsg
 
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYOPDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYOManuelBustamante49
 
Torre 222 sobre instalaciones de este mismo edificio
Torre 222 sobre instalaciones de este mismo edificioTorre 222 sobre instalaciones de este mismo edificio
Torre 222 sobre instalaciones de este mismo edificio2021ArqROLDANBERNALD
 
Normas de convivencia para imprimir gratis
Normas de convivencia para imprimir gratisNormas de convivencia para imprimir gratis
Normas de convivencia para imprimir gratisbrasilyamile
 
plantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especialplantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especialAndreaMlaga1
 
Geometrías de la imaginación: Diseño e iconografía de Querétaro
Geometrías de la imaginación: Diseño e iconografía de QuerétaroGeometrías de la imaginación: Diseño e iconografía de Querétaro
Geometrías de la imaginación: Diseño e iconografía de QuerétaroJuan Carlos Fonseca Mata
 
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...MayerlyAscanioNavarr
 
TIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánicoTIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánicoWilsonChambi4
 
guia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdfguia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdfcucciolosfabrica
 

Último (20)

Arquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSMArquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSM
 
Diseño de sifones y alcantarillas para obras hidraulicas
Diseño de sifones y alcantarillas para obras hidraulicasDiseño de sifones y alcantarillas para obras hidraulicas
Diseño de sifones y alcantarillas para obras hidraulicas
 
Slaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdfSlaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdf
 
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura ModernaLe Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
 
APORTES Y CARACTERISTICAS DE LAS OBRAS DE CORBUSIER. MIES VAN DER ROHE
APORTES Y CARACTERISTICAS DE LAS OBRAS DE  CORBUSIER. MIES VAN DER ROHEAPORTES Y CARACTERISTICAS DE LAS OBRAS DE  CORBUSIER. MIES VAN DER ROHE
APORTES Y CARACTERISTICAS DE LAS OBRAS DE CORBUSIER. MIES VAN DER ROHE
 
Proceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimientoProceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimiento
 
Presentacion de 100 psicologos dijeron.pptx
Presentacion de 100 psicologos dijeron.pptxPresentacion de 100 psicologos dijeron.pptx
Presentacion de 100 psicologos dijeron.pptx
 
diseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidaddiseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidad
 
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfCERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
 
1.La locomoción de los seres vivos diseño
1.La locomoción de los seres vivos diseño1.La locomoción de los seres vivos diseño
1.La locomoción de los seres vivos diseño
 
Arquitectura Moderna Walter Gropius- Frank Lloyd Wright
Arquitectura Moderna  Walter Gropius- Frank Lloyd WrightArquitectura Moderna  Walter Gropius- Frank Lloyd Wright
Arquitectura Moderna Walter Gropius- Frank Lloyd Wright
 
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYOPDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
 
Torre 222 sobre instalaciones de este mismo edificio
Torre 222 sobre instalaciones de este mismo edificioTorre 222 sobre instalaciones de este mismo edificio
Torre 222 sobre instalaciones de este mismo edificio
 
Normas de convivencia para imprimir gratis
Normas de convivencia para imprimir gratisNormas de convivencia para imprimir gratis
Normas de convivencia para imprimir gratis
 
plantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especialplantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especial
 
Geometrías de la imaginación: Diseño e iconografía de Querétaro
Geometrías de la imaginación: Diseño e iconografía de QuerétaroGeometrías de la imaginación: Diseño e iconografía de Querétaro
Geometrías de la imaginación: Diseño e iconografía de Querétaro
 
Arte textil: Tejidos artesanos en la frontera hispano-lusa
Arte textil: Tejidos artesanos en la frontera hispano-lusaArte textil: Tejidos artesanos en la frontera hispano-lusa
Arte textil: Tejidos artesanos en la frontera hispano-lusa
 
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
 
TIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánicoTIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánico
 
guia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdfguia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdf
 

A1 python 3

  • 1.
  • 2. 2. Trabajando con datos en Python En esta lección aprenderás a leer y escribir archivos con Open; cargar, trabajar y guardar datos con Pandas. 2.1 Leer archivos con Open En esta sección, utilizaremos la función "open" integrada en Python para crear un objeto file (archivo) y obtener los datos de un archivo "txt". Usaremos la función open de Python para obtener un objeto file. Podemos aplicar un método a ese objeto para leer los datos del archivo. Podemos abrir el archivo, Example1.txt, de la siguiente manera. Usamos la función open. El primer argumento es la ruta del archivo.
  • 3. Está compuesto por el nombre del archivo y el directorio del mismo. El segundo parámetro es el modo. Los valores que se utilizan comúnmente son "r" para lectura, “w" para escritura, y "a" para añadir. Usaremos 'r' para la lectura. Finalmente, tenemos el objeto file. Ahora podemos usar el objeto file para obtener información sobre el archivo.
  • 4. Podemos utilizar el atributo de datos name (nombre) para obtener el nombre del archivo. El resultado es una cadena que contiene el nombre del archivo. Podemos ver en qué modo está el objeto usando el atributo de datos mode (modo), y se muestra 'r' indicando lectura. Siempre debes cerrar el objeto file usando el método close (cerrar). Esto a veces puede resultar tedioso, así que usaremos la sentencia "with" (con). Usar una declaración "with" para abrir un archivo es una buena práctica porque cierra el archivo automáticamente. El código ejecutará todo lo que hay en el bloque con sangrado y luego cerrará el archivo. Este código lee el archivo, Example1.txt. Podemos usar el objeto file, "File1." El código realizará todas las operaciones en el bloque con sangrado y luego cerrará el archivo al final del sangrado.
  • 5. El método "read" (leer) almacena los valores del archivo en la variable "file_stuff" (cosas_del_fichero) como una cadena. Puedes imprimir el contenido del archivo. Puedes comprobar si el contenido del archivo está cerrado, pero no puedes leerlo desde fuera del sangrado. Pero también puedes imprimir el contenido del archivo fuera del sangrado. Podemos imprimir el contenido del archivo. Veremos lo siguiente. Cuando examinemos la cadena en bruto, veremos la "n". Esto es para que Python sepa que debe empezar una nueva línea.
  • 6. Podemos imprimir cada línea como un elemento de una lista usando el método "readlines" (leer líneas). La primera línea corresponde al primer elemento de la lista. La segunda línea corresponde al segundo elemento de la lista, y así sucesivamente. Podemos usar el método "readline" para leer la primera línea del archivo. Si ejecutamos este comando, almacenará la primera línea en la variable "file_stuff" y luego imprimirá la primera línea. Podemos usar el método "readline" dos veces. La primera vez que se llame, guardará la primera línea en la variable "file_stuff" y luego imprimirá la primera línea. La segunda vez que se llame, guardará la segunda línea en la variable "file_stuff" y luego imprimirá la segunda línea.
  • 7. Podemos usar un bucle para imprimir cada línea individualmente de la siguiente manera. Representemos cada carácter de una cadena como una cuadrícula. Podemos especificar el número de caracteres que queremos leer de la cadena como argumento del método "readlines". Cuando usamos un cuatro como argumento en el método "readlines", imprimimos los primeros cuatro caracteres del archivo.
  • 8. Cada vez que llamemos al método avanzaremos por el texto. Si llamamos al método con el argumento 16, se imprimen los primeros 16 caracteres y luego la nueva línea. Si llamamos al método por segunda vez, se imprimen los cinco caracteres siguientes. Finalmente, si llamamos al método por última vez con el argumento nueve, se imprimen los últimos nueve caracteres. Consulta los Laboratorios para ver más ejemplos de métodos y otros tipos de archivos. 2.1.1 Usando loc, iloc, e ix Usando loc, iloc y ix Hay tres formas de seleccionar datos de un dataframe en Pandas: loc, iloc, y ix. loc loc se basa principalmente en etiquetas; cuando se usan dos argumentos, usa encabezados de columna e índice de fila para seleccionar los datos que desea. loc también puede tomar un número entero como un número de fila o columna. Ejemplos de uso de loc:
  • 9. loc devolverá un KeyError si no se encuentran los elementos solicitados. iloc iloc está basado en enteros. Utiliza números de columna y números de fila para obtener filas o columnas en posiciones particulares en el dataframe. Ejemplos de uso de iloc: iloc devolverá un IndexError si el indexador solicitado está fuera de los límites.
  • 10. ix Por defecto, ix busca una etiqueta. Si ix no encuentra una etiqueta, usará un entero. Esto significa que puede seleccionar datos usando números de columna y números de fila o encabezados de columna y nombres de fila usando ix. En Pandas versión 0.20.0 y posterior, ix está en desuso. Usando loc y iloc para cortar También puede usar loc y iloc para cortar dataframes y asignar valores a un nuevo dataframe. Crear un nuevo dataframe con corte loc También puede dividir dataframes y asignar los valores a un nuevo dataframe utilizando los nombres de columna. El código asigna las primeras tres filas y todas las columnas intermedias a las columnas llamadas Artist y Released. El resultado es un nuevo dataframe Z con los valores correspondientes. Crear un nuevo dataframe con corte iloc En este ejemplo, asignamos las dos primeras filas y las primeras tres columnas a la variable Z. El resultado es un dataframe compuesto por las filas y columnas seleccionadas.
  • 11. 2.2 Cargar datos con Pandas Dependencias o librerías son un código ya escrito para ayudar a resolver problemas. En este vídeo, presentaremos Pandas, una popular librería para el análisis de datos. Podemos importar la librería o una dependencia como Pandas usando el siguiente comando. Empezamos con el comando import y seguimos con el nombre de la librería. Ahora tenemos acceso a un gran número de clases y funciones preconstruidas. Esto presupone que la librería está instalada. En nuestro entorno de laboratorio, todas las librerías necesarias están instaladas. Digamos que queremos cargar un archivo CSV usando la función incorporada de Pandas, read_csv. Un CSV es un tipo de archivo típico utilizado para almacenar datos. Simplemente tecleamos la palabra Pandas, luego un punto y el nombre de la función con todas las entradas.
  • 12. Escribir Pandas todo el tiempo puede ser tedioso. Podemos usar la sentencia "as" para acortar el nombre de la librería. En este caso, usamos la abreviatura estándar, pd. Ahora escribimos pd y un punto, seguido del nombre de la función que queremos usar. En este caso, read_csv. No nos limitamos a la abreviatura pd. En este caso, usamos el término banana. Nos quedaremos con pd para el resto del vídeo. Examinemos este código más a fondo. Una forma en la que Pandas permite trabajar con datos es con el marco de datos (data frame).
  • 13. Repasemos el proceso para pasar de un archivo CSV a un marco de datos. Esta variable almacena la ruta del CSV. Se utiliza como argumento de la función read_csv. El resultado se almacena en la variable df. Esta es la abreviatura de marco de datos. Ahora que tenemos los datos en un marco de datos, podemos trabajar con ellos. Podemos usar el método "head" para examinar las primeras cinco filas de un marco de datos. El proceso para cargar un archivo de Excel es similar. Usamos la ruta del archivo de Excel. La función lee Excel. El resultado es un marco de datos. Un marco de datos está compuesto de filas y columnas.
  • 14. Podemos crear un marco de datos a partir de un diccionario. Las claves corresponden a las etiquetas de las columnas. Los valores o listas corresponden a las filas. A continuación, convertimos el diccionario en un marco de datos utilizando la función DataFrame. Podemos ver la correspondencia directa con la tabla. Las claves corresponden a los encabezados de la tabla.
  • 15. Los valores son listas correspondientes a las filas. Podemos crear un nuevo marco de datos que consiste en una columna. Sólo ponemos el nombre del marco de datos, en este caso, df, y el nombre de la cabecera de la columna entre corchetes dobles. El resultado es un nuevo marco de datos compuesto por la columna original.
  • 16. Puedes hacer lo mismo para múltiples columnas. Sólo ponemos el nombre del marco de datos, en este caso, df, y el nombre de las cabeceras de las múltiples columnas entre dobles corchetes. El resultado es un nuevo marco de datos compuesto por las columnas especificadas. Una forma de acceder a los elementos únicos es el método "ix". Se puede acceder a la primera fila y a la primera columna de la siguiente manera. Puedes acceder a la segunda fila y a la primera columna de la siguiente manera. Puedes acceder a la primera fila y a la tercera columna de la siguiente manera. Puedes acceder a la segunda fila, tercera columna de la siguiente manera.
  • 17. Si también utilizas el nombre de la columna, puedes acceder a la primera fila de la columna llamada Artist de la siguiente manera. Del mismo modo, puedes acceder a la segunda fila de la columna denominada Artist. Puedes acceder a la primera fila de la columna denominada Released (Publicado) de la siguiente manera. Por último, puedes acceder a la segunda fila de la columna denominada Released. También puedes dividir marcos de datos y asignar los valores a un nuevo marco de datos. Asignamos las dos primeras filas y las tres primeras columnas a la variable Z. El resultado es un marco de datos compuesto por las filas y columnas seleccionadas.
  • 18. También puedes dividir los marcos de datos y asignar los valores a un nuevo marco de datos utilizando los nombres de las columnas. El código asigna las tres primeras filas y todas las columnas intermedias a las columnas denominadas Artist y Released. El resultado es un nuevo marco de datos Z con los valores correspondientes. 2.3 Trabajar y guardar datos con Pandas Cuando tenemos un dataframe podemos trabajar con los datos y guardar los resultados en otros formatos. Considera la pila de 13 bloques de diferentes colores.
  • 19. Podemos ver tres colores únicos. Supongamos que desea saber cuántos elementos únicos hay en una columna de un dataframe. Esto puede ser más difícil porque en lugar de 13 elementos quizás tenga millones. Pandas tiene el único método para determinar los elementos únicos en una columna de un dataframe. Digamos que nos gustaría determinar el año único de los álbumes en el conjunto de datos. Ingresamos el nombre del dataframe, luego ingresaremos el nombre de la columna ‘Released’ entre corchetes. Luego aplicaremos el método único. El resultado es de todos los elementos únicos en la columna ‘Released’.
  • 20. Vamos a decir que nos gustaría crear una nueva base datos que consista en canciones desde 1980's y después. Podemos buscar en la columna ‘Released’ canciones hechas después de 1979, luego seleccionar las columnas correspondientes. Podemos hacer esto dentro de una línea de código en Pandas, pero separemos los pasos. Podemos usar los operadores de desigualdad para todo el dataframe en pandas.
  • 21. El resultado es una serie de valores booleanos. En nuestro caso, simplemente podemos especificar la columna ‘Released’ y la desigualdad para los álbumes después de 1979. El resultado es una serie de valores booleanos. El resultado es verdadero cuando la condición es verdadera y falsa de lo contrario. Podemos seleccionar las columnas especificadas en una línea, simplemente usemos los nombres del dataframe y entre corchetes colocamos la desigualdad mencionada anteriormente y la asignamos a la variable df1. Ahora tenemos un nuevo dataframe, donde cada álbum fue lanzado después de 1979.
  • 22. Podemos guardar el nuevo dataframe utilizando el método to_csv. El argumento es el nombre del archivo csv. Asegúrate de incluir una extensión de punto csv. Hay otras funciones para guardar el dataframe en otros formatos. 3 Trabajando con matrices Numpy El objetivo de aprendizaje es mostrar cómo usar NumPy para crear matrices multidimensionales y hacer una introducción a la API. 2.2 Numpy de una dimensión En esta lección cubriremos NumPy en 1D (una dimensión), en particular los arrays ND. NumPy es una librería para computación científica. Tiene muchas funciones útiles. Existen muchas otras ventajas como la velocidad y la memoria.
  • 23. NumPy también es la base para Pandas. Así que echa un vistazo a nuestro video sobre Pandas. En este video cubriremos lo básico y la creación, indexación y división de arrays, operaciones básicas, funciones universales. Repasemos cómo crear un array NumPy. Una lista Python es un contenedor que permite almacenar y acceder a los datos. Cada elemento está asociado a un índice. Podemos acceder a cada elemento usando un corchete como se ve a continuación. Un array NumPy o un array ND es similar a una lista. Normalmente es de tamaño fijo y cada elemento es del mismo tipo, en este caso enteros. Podemos convertir una lista a un array NumPy importando primero NumPy. Luego, convertimos la lista de la siguiente manera; podemos acceder a los datos mediante un índice. Al igual que con la lista, podemos acceder a cada elemento con un número entero y un corchete.
  • 24. El valor de "a" se almacena de la siguiente manera. Si comprobamos el tipo del array que obtenemos, Numpy. ndarray, como los arrays NumPy contienen datos del mismo tipo, podemos usar el atributo dtype para obtener el tipo de datos de los elementos del array. En este caso un entero de 64 bits. Revisemos algunos atributos básicos del array usando el array "a". El atributo size es el número de elementos del array. Como hay cinco elementos el resultado es cinco. Los dos atributos siguientes tendrán más sentido cuando lleguemos a dimensiones mayores, pero vamos a revisarlos. El atributo ndim representa el número de dimensiones del array o el rango del array, en este caso uno.
  • 25. El atributo shape es una tupla de números enteros que indican el tamaño del conjunto en cada dimensión. Podemos crear un array NumPy con números reales. Cuando comprobamos el tipo del array, obtenemos numpy.ndarray. Si examinamos el atributo dtype, vemos float64 ya que los elementos no son enteros. Hay muchos otros atributos, consulta numpy.org. Revisemos algunos métodos de indexación y división. Podemos cambiar el primer elemento del array a 100 de la siguiente manera. El primer valor del array es ahora 100. Podemos cambiar el quinto elemento del array de la siguiente manera. El quinto elemento es ahora cero.
  • 26. Al igual que con las listas y las tuplas podemos dividir un array de NumPy. Los elementos del array corresponden al siguiente índice. Podemos seleccionar los elementos de uno a tres y asignarlos a un nuevo array NumPy "d" de la siguiente manera. Los elementos de "d" corresponden al índice. Al igual que las listas, no contamos el elemento correspondiente al último índice. Podemos asignar los índices correspondientes a los nuevos valores de la siguiente manera. El array "c" tiene ahora nuevos valores. Consulta los laboratorios o numpy.org para ver más ejemplos de lo que puedes hacer con NumPy.
  • 27. NumPy facilita la realización de muchas operaciones que se realizan comúnmente en ciencia de datos. Las mismas operaciones suelen ser más rápidas desde el punto de vista computacional y requieren menos memoria en NumPy en comparación con el Python normal. Revisemos algunas de estas operaciones en arrays unidimensionales. Veremos muchas de las operaciones en el contexto de los vectores euclidianos para hacer las cosas más interesantes. La suma de vectores es una operación que se utiliza ampliamente in data science. Consideremos el vector "u" con dos elementos, los elementos se distinguen por los diferentes colores. De manera similar, consideremos el vector "v" con dos componentes. En la adición de vectores, creamos un nuevo vector en este caso "z". El primer componente de "z" es la suma del primer componente de los vectores "u" y "v". De manera similar, el segundo componente es la suma de los segundos componentes de "u" y "v". Este nuevo vector "z" es ahora una combinación lineal del vector "u" y "v". Es útil representar la suma de los vectores con un segmento de línea o flechas.
  • 28. El primer vector se representa en rojo, el vector apuntará en la dirección de los dos componentes. El primer componente del vector es uno. Como resultado, la flecha está desplazada una unidad desde el origen en la dirección horizontal. El segundo componente es cero, representamos este componente en la dirección vertical. Como este componente es cero, el vector no apunta en la dirección horizontal.
  • 29. Representamos el segundo vector en azul. El primer componente es cero, por lo tanto, la flecha no apunta a la dirección horizontal. El segundo componente es uno. Como resultado el vector apunta en la dirección vertical una unidad. Cuando sumamos los vectores "u" y "v", obtenemos el nuevo vector "z". Sumamos el primer componente, que corresponde a la dirección horizontal. También añadimos el segundo componente. Resulta útil emplear el método de punta a cola cuando se suman vectores, colocando la cola del vector "v" en la punta del vector "u". El nuevo vector "z" se construye conectando la base del primer vector "u" con la cola del segundo "v".
  • 30. En las siguientes tres líneas de código sumaremos las dos listas y pondremos el resultado en la lista "z". También podemos realizar la adición de vectores con una línea de código NumPy. Se necesitarían varias líneas para realizar la resta de vectores en dos listas, como se muestra en la parte derecha de la pantalla. Además, el código NumPy se ejecutará mucho más rápido. Esto es importante si tienes muchos datos. También podemos realizar la substracción vectorial cambiando el signo de adición por un signo de resta.
  • 31. La resta vectorial en dos listas requeriría múltiples líneas, como se muestra en la parte derecha de la pantalla. La multiplicación de vectores con un escalar es otra operación que se realiza con frecuencia. Consideremos el vector "y", cada componente se especifica con un color diferente. Simplemente multiplicamos el vector por un valor escalar, en este caso dos. Cada componente del vector se multiplica por dos, en este caso cada componente se duplica. Podemos usar el segmento de línea o las flechas para visualizar lo que sucede. El vector original "y" es de color púrpura.
  • 32. Después de multiplicarlo por un valor escalar de dos, el vector se estira por dos unidades como se muestra en rojo. El nuevo vector es el doble de largo en cada dirección. La multiplicación del vector con un escalar sólo requiere una línea de código utilizando NumPy. Harían falta múltiples líneas para realizar la misma tarea que se muestra con las listas de Python, como se ve en la parte derecha de la pantalla. Además, la operación también sería mucho más lenta. El producto Hadamard es otra operación ampliamente utilizada en ciencia de datos. Consideremos los dos vectores siguientes, "u" y "v". El producto hadamard de "u" y "v" es un nuevo vector "z". El primer componente de "z" es el producto del primer elemento de "u" y "v".
  • 33. Análogamente, el segundo componente es el producto del segundo elemento de "u" y "v". El vector resultante consiste en el producto Entrywise de "u" y "v". También podemos realizar el producto hadamard con una línea de código en NumPy. Se necesitarían múltiples líneas para realizar el producto hadamard en las dos listas que se muestran en la parte derecha de la pantalla. El producto Dot es otra operación ampliamente utilizada en ciencia de datos. Consideremos el vector "u" y "v", el producto dot es un número único dado por el siguiente término y representa cuán similares son dos vectores.
  • 34. Multiplicamos el primer componente de "v" y "u", luego multiplicamos el segundo componente y sumamos el resultado. El resultado es un número que representa lo similares que son los dos vectores. También podemos realizar el producto dot usando la función NumPy dot y asignarlo con el resultado de la variable de la siguiente manera. Consideremos el array "u", el array contiene los siguientes elementos. Si sumamos un valor escalar al array, NumPy sumará ese valor a cada elemento. Esta propiedad se conoce como difusión (broadcasting). Una función universal es una función que realiza operaciones en los arrays ND. Podemos aplicar una función universal a un array NumPy.
  • 35. Consideremos el array "a", podemos calcular el valor medio o promedio de todos los elementos en a usando el método mean. Esto corresponde a la media de todos los elementos. En este caso el resultado es cero. Hay muchas otras funciones. Por ejemplo, consideremos el array NumPy "b". Podemos encontrar el valor máximo usando el método, cinco. Vemos que el valor máximo es cinco, por lo tanto, el método max devuelve un cinco. Podemos usar NumPy para crear funciones que asignen los arrays de NumPy a nuevos arrays de NumPy. Vamos a escribir algo de código en el lado izquierdo de la pantalla y a usar el lado derecho de la pantalla para demostrar lo que está pasando. Podemos acceder al valor de pi en NumPy de la siguiente manera. Podemos crear el siguiente array de NumPy en radianes. Este array corresponde al siguiente vector. Podemos aplicar la función sin al array "x" y asignar los valores a la matriz "y" Esto aplica la función seno a cada elemento del array, esto corresponde a aplicar la función seno a cada componente del vector.
  • 36. El resultado es un nuevo array "y", en el que cada valor corresponde a una función seno que se aplica a cada elemento del array x. Una función útil para trazar funciones matemáticas es linspace (espacio lineal). Linspace devuelve números espaciados uniformemente a lo largo de un intervalo especificado. Especificamos el punto de inicio de la secuencia, el punto final de la secuencia. El parámetro num indica el número de muestras a generar, en este caso cinco. El espacio entre las muestras es uno.
  • 37. Si cambiamos el parámetro num a nueve, obtenemos nueve números espaciados uniformemente sobre la integral, desde dos negativos a dos. El resultado es que la diferencia entre las muestras subsiguientes es de 0,5 en lugar de uno como antes. Podemos utilizar la función linspace para generar 100 muestras espaciadas uniformemente desde el intervalo cero a dos. Podemos usar la función seno de NumPy para mapear el array "x" a un nuevo array "y". Podemos importar la librería pyplot como plt para ayudarnos a dibujar la función.
  • 38. Como estamos usando un cuaderno Júpiter, usamos el comando matplotlib de manera inline para mostrar el trazado. El siguiente comando traza un gráfico. La primera entrada corresponde a los valores del eje horizontal o "x". La segunda entrada corresponde a los valores para el eje vertical o "y". Se puede hacer mucho más con NumPy consulta www.NumPy.org para más información.
  • 39.