Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Leer archivos CSV y JSON con Pandas

12/24
Recursos

Aportes 32

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Algo interesante interesante:
´
Cuando queramos leer una tabla que está en una página web, podemos utilizar la sentencia:

	pd.read_html('link')

Esto nos devuelve una lista de tablas. Aquí la documentación

´
´

Y un ejemplo:

´

También puedes llamar el archivo directamente en el servidor

url = "https://static.platzi.com/media/public/uploads/hpcharactersdataraw_3d934e85-dfa4-42ec-8520-fadfbecae574.json"

pd.read_json(url)

Cuando trabajamos con DataFrames limpiar los datos es importante, y me encanta empezar con .info(), ya que nos da un vistazo rápido pero bastante detallado y asi tener un punto de inicio claro.

Muy buena clase! Me bajé un dataset desde Kaggle con datos relacionados con problemas de salud que pueden ocasionar un ataque al corazón.

Enlace al dataset en Kaggle:
https://www.kaggle.com/datasets/kamilpytlak/personal-key-indicators-of-heart-disease

Mi notebook en deepnote:
https://deepnote.com/workspace/a_mas-4d3cb1a2-d826-48e9-8cc9-c1f07b3940b6/project/Untitled-project-iXp8-mHHTnuiQ-vGmkSPZg/%2Fnotebook.ipynb

He cargado una datasheet con los precios de Bitcoin y eliminado los que no tenían valor en la columna “Weighted_Price”

Subí un archivo con los 50 libros 📖 más vendidos de Amazon.

Consejo del curso de crear tus propios proyectos de Data: busquen data sets de proyectos que les interesen. Estos pueden ser de sus ciudades y con temas que les interese mejorar para las mismas como el tránsito, la higiene, la iluminación, etc. Los datos están y son lo primero, parafraseando a Milton Friedman (él decía “primero los datos” pero el mensaje es el mismo), ahora depende de ustedes de cómo los usen.

Por si se preguntaban si está… hasta dos veces lo pusieron:

Con el encoding cuando creamos el dataframe podemos definir que codigo para manejo de caracteres queremos y asi evitar problemas por ejemplo con los acentos. El mayormente utilizado es el “utf-8”.

Áca mi reto.

Enlace Apuntes Notion

Leer archivos CSV y JSON con Pandas

Cargar Archivos

Podemos cargar archivos a través de url, json, html, etc

CSV

Podemos cargar los archivos csv de manera automática, o dándole atributos especiales cuando el archivo no este delimitado por comas, sino por algún otro carácter

csv_per_default = pd.read_csv('./bestsellers-with-categories.csv')

Cambiar inicio nombres de columnas

header_0 = pd.read_csv('./bestsellers-with-categories.csv', sep=",", header=0,)
header_100 = pd.read_csv('./bestsellers-with-categories.csv', sep=",", header=100,)
header_none = pd.read_csv('./bestsellers-with-categories.csv', sep=",", header=None)

Cambiar nombres de columnas

df_books = pd.read_csv(
	'./bestsellers-with-categories.csv',
	sep=",",
	header=0
)
df_books.columns
df_books = pd.read_csv(
	'./bestsellers-with-categories.csv',
	sep=",",
	header=0,
	names=['Namesss', 'Authorrrr', 'User Rating', 'Reviews', 'Price', 'Year', 'Genre']
)
df_books.columns

JSON

Podemos cargar el archivo JSON como un DataFrame por default, u otra forma de llevar la estructura JSON a una estructura de Pandas como una Series

json_per_default = pd.read_json('./hpcharactersdataraw.json')
# Me indexa una lista en raw del formato llave valor del JSON
pd.read_json('./hpcharactersdataraw.json',typ='Series')

Reto

  • Sacar un dataset de Kaggle
  • Cargar el DataFrame con la ruta del archivo
# 
genshin = pd.read_csv('./genshin.csv', sep=',', header=0)
genshin
genshin.info()

Reto

typ

Cargar archivos JSON

Modificar header o encabezados

Modificar Separadores

Leer archivos

cargar archivos CSV

me paso que no me mostraba la tabla en google colab y me arrojo un problema con que estaba reecribiendo un str, borre el archivo y reescribí nuevamente la linea y funciono, debe haber algún problema con colab.

Si el csv esta colgado en un link de internet con PANDAS lo podemos leer directamente.
FUENTE https://stackoverflow.com/questions/32400867/pandas-read-csv-from-url

import pandas as pd
url="https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv"
c=pd.read_csv(url)
c

Me parece interesante que hayas mencionado para los que no estamos en el ámbito practico, que la mayoria de las veces se trabaja con csv o sql a csv.
Saludos.

  • Leer un archivo CSV. Primero debemos cargarlo al sistema de archivo del Notebooks que estamos utilizando (Deepnote o Jupiter). Luego hacemos el llamado con la siguiente linea:
import pandas as pd
df_books = pd.read_csv('ruta/nombre_archivo')
df_books -----> #muestra el archivo en formato DataFrame
  • Si el .CSV esta separado por otro simbolo que no sea la coma, por ejemplo por punto y coma, podemos configurarlo para que el separador sea ;
df_books = pd.read_csv('ruta/nombre_archivo', sep=';')
df_books ------> #muestra el archivo, separado por (;), en formato dataFrame
  • Cambiar el encabezado del archivo por una de sus columnas
df_books = pd.read_csv('ruta/nombre_archivo', sep=',', header=1)
df_books ------> #muestra el dataFrame con la primera columna como encabezado

df_books = pd.read_csv('ruta/nombre_archivo', sep=',', header=0)
df_books ------> #muestra el dataFrame con el encabezado que trae el archivo por defecto
  • Sustituye los nombres del encabezado con una lista que contenga los nuevos nombres
df_books = pd.read_csv('ruta/nombre_archivo', sep=',', header=0, names = ['title1', 'title2', 'titleN'])
df_books   -----> #muestra la dataFrame con los nuevos nombres de columnas dados
  • Abrir un archivo json en formato dataFrame
df_personajes = pd.read_json('ruta/nombre_archivo')
df_personajes -----> #muestra el archivo json en formato dataFrame
  • Abrir un archivo json en formato de Series
df_personajes = pd.read_json('ruta/nombre_archivo', typ='Series')
df_personajes ------> #muestra el archivo json en formato de Series

Data frame:

Profe tal vez, como puede uno quitar esos puntos de en medio del dataframe?, gracias!!

Si les aparece (como a mí) el SyntaxError intenten poner la letra “r” antes de las comillas:
df = pd.read_csv(r’path’)

Escogí un DataFrame con datos acerca de los videojuegos, los datos que tiene son: Plataforma, año publicación, ventas, etc.

Esta genial la manera de las lecturas y las representaciones de .json y .csv