Entrada sobre la importación de Excel con Python, un aporte que sirve para mi documentación y que es posible que sea de ayuda para muchos que se estén iniciando en el uso de Python y Pandas, aunque en este caso para la lectura del Excel usaremos tanto Pandas como la librería xlrd.
Lectura de Excel con Pandas
Lo más sencillo para importarnos en Python un Excel y crearnos un data frame de Pandas es:
import pandas as pd archivo = 'C:/Users/Documents/ejemplo.xlsx' df = pd.read_excel(archivo, sheet_name='Hoja1') df.describe()
La función read_excel será suficiente en el 80% de las ocasiones que realicemos esta tarea. Como es habitual en la ayuda tenéis perfectamente descritas sus posibilidades.
Lectura de Excel con xlrd
Es posible que necesitemos realizar tareas más complejas a la hora de leer archivos Excel y podemos usar xlrd. Vemos algunas de las posibilidades:
import xlrd archivo = 'C:/Users/rvaquerizo/Documents/ejemplo.xlsx' wb = xlrd.open_workbook(archivo) hoja = wb.sheet_by_index(0) print(hoja.nrows) print(hoja.ncols) print(hoja.cell_value(0, 0))
open_workbook nos abre el Excel para trabajar con él. Seleccionamos hojas por índice (empezando por el 0) y con la hoja seleccionada podemos ver el número de filas (nrows) o columnas (ncols). Seleccionar una celda lo hacemos con cell_value mediante índices (empezando por el 0). Otras posibilidades:
archivo = 'C:/Users/rvaquerizo/Documents/ejemplo.xlsx' wb = xlrd.open_workbook(archivo) hoja = wb.sheet_by_name('Hoja1') for i in range(0,hoja.nrows): print(hoja.cell_value(i,1))
Si por ejemplo deseamos saber las cabeceras, los nombres de las columnas:
archivo = 'C:/Users/rvaquerizo/Documents/ejemplo.xlsx' wb = xlrd.open_workbook(archivo) hoja = wb.sheet_by_index(0) nombres = hoja.row(0) print(nombres)
Y mediante xlrd podemos crear data frames de pandas con lo que es posible realizar lecturas de rangos:
archivo = 'C:/Users/rvaquerizo/Documents/ejemplo.xlsx' wb = xlrd.open_workbook(archivo) hoja = wb.sheet_by_index(0) # Creamos listas filas = [] for fila in range(1,hoja.nrows): columnas = [] for columna in range(0,2): columnas.append(hoja.cell_value(fila,columna)) filas.append(columnas) import pandas as pd df = pd.DataFrame(filas) df.head()
Hay alguna librería que lo hace de forma más elegante pero la importación de rangos de Excel con xlrd, una vez te familiarizas, me parece bastante sencilla. Espero que sea de utilidad
Estimados
Como puedo leer y unificar varios archivos excel los mismos q contienen varias hojas
La carpeta es:
D:\1.2 CARPETAS PARA REPORTES\Totaten x años\2020
La carpeta 2020 tiene los archivos excel siguientes:
Enero 2020
Febrero 2020
Marzo 2020
Abril 2020
Y cada Archivo contiene las siguientes hojas:
HS_T7T5TEN_20200301_20200331 1
HS_T7T5TEN_20200301_20200331 2
HS_T7T5TEN_20200301_20200331 3
https://analisisydecision.es/trucos-excel-unir-todos-los-excel-en-uno-version-muy-mejorada/
Estimado
Mi necesidad es unir con python archvos excel con varias hojas cada uno, hice lago asi pero veo que solo me une las primeras hojas que podria hacer para que se unan todas las hojas de los dos archivos:
link: r’d:\carpetas\totaten 2021′
os.chdir(link)
lista_archivos=glob.glob(link+os.sep+’*.xlsx’)
archivos=[]
for i in lista_archivos:
a=pd.read_excel(i)
archivos.append(a)
a=pd.concat(archivos,ignore_index=False)
Buenas tardes
Como podría guardar el archivo Excel en una ruta especifica utilizando pandas
Opción A
import pandas as pd
file.to_excel(ruta, sheet_name=»»….)
Opción B
import pandas as pd
writer = pd.ExcelWriter(‘path’+’file.xlsx’, engine=’xlsxwriter’)
Hola trabajo cos SAP y genero reportes con excel, power query y todo bien.
Pero cuando intento abrir un archivo
csv, xls, xlsx o txt, todos me dan error. (ya corregi el formato iso desde SAP), pero no me indica columnas, esto con pandas.
pero cuando abro el archivo con doble click en jupiter veo lo mismo que excel o block de notas.
No puedo
he probado con sep=’ ‘ varios modos
header=none (para ver si eran las columnas y da error
en resumen, lee las x filas pero solo 1 columna
Ayuda.
Hola Raúl,
¡Primero agradecerte el contenido!
Comentar que cuando utilizas la biblioteca xlrd, esta sólo permite trabajar con archivos Excel de formato histórico tipo .xls. Como alternativa se puede utilizar la biblioteca xlswriter para manipular archivos excel del formato .xlsx.
Saludos