Tutorial de Python Excel: la
guía definitiva
Aprenda a leer e importar archivos de Excel en
Python, escribir datos en estas hojas de cálculo y
encontrar los mejores paquetes para hacerlo.
Si recién está comenzando y desea aprender a trabajar con datos en
Python, tome el curso interactivo de DataCamp, Importación de datos
en Python para trabajar con archivos CSV y Excel en Python.
Uso de Python y Excel para la ciencia de datos
Excel es una aplicación de hoja de cálculo que fue desarrollada por
Microsoft en el año 1987. Es oficialmente compatible con casi todos
los sistemas operativos como Windows, Macintosh, Android, etc.
Viene preinstalado con el sistema operativo Windows y se puede
integrar fácilmente con otras plataformas del sistema operativo.
Microsoft Excel es la mejor y más accesible herramienta a la hora de
trabajar con datos estructurados.
Organiza, analiza y almacena sus datos en forma tabular de filas y
columnas. ¡Puede realizar cálculos y crear tablas dinámicas, gráficos y
mucho más! Desde su lanzamiento, este software ganó popularidad y
es ampliamente utilizado en muchos campos de aplicación diferentes
y todo tipo de dominios en todo el mundo.
Desde el día en que se creó Internet, ha crecido exponencialmente, al
igual que la cantidad de datos. El crecimiento de los datos ha
impulsado la necesidad de que las personas entiendan cómo
analizarlos. Las corporaciones y los gobiernos estaban recopilando big
data. Por lo tanto, se acuñó el término ciencia de datos.
Cuando trabaje con datos, tendrá que lidiar con hojas de cálculo en
algún momento; sin embargo, trabajar directamente con hojas de
cálculo puede ser molesto a veces, especialmente cuando eres un
desarrollador. Para deshacerse de este problema, los desarrolladores
de Python ideó formas de leer, escribir, analizar todo tipo de formatos
de archivo, incluidas las hojas de cálculo.
El tutorial de hoy será principalmente sobre cómo puede usar el
lenguaje de programación Python y trabajar con Excel sin usar
directamente la aplicación Microsoft Excel. Le proporcionará
experiencia práctica con los paquetes que puede usar para cargar, leer,
escribir y analizar estas hojas de cálculo con la ayuda de Python.
Estarás tratando con paquetes
como pandas, openpyxl, xlrd, xlutilsy pyexcel.
Los datos son el petróleo
Cuando comienzas cualquier proyecto que trata directa o
indirectamente con datos, lo primero y más importante que harías es
buscar un conjunto de datos. Ahora la recopilación de datos se puede
hacer de varias maneras, ya sea utilizando web scraping, un conjunto
de datos privado de un cliente o un conjunto de datos público
descargado de fuentes como , , , ,
[Link]
Estos datos pueden estar en un archivo de Excel o guardados con la
extensión de archivo , , , etc. Los datos pueden ser cualitativos o
cuantitativos. El tipo de datos puede variar según el tipo de problema
que planee resolver. Por lo tanto, como primer paso, debe averiguar si
está trabajando con datos cualitativos o cuantitativos..[Link]
Los datos podrían ser:
Continuo
Discreto
Categórico - Binario, Desordenado, Ordenado
Píxeles de imágenes, etc.
Prácticas recomendadas para datos de hojas de
cálculo
Antes de comenzar a cargar, leer y analizar los datos de Excel en
Python, es una buena práctica ver los datos de ejemplo y comprender
si los siguientes puntos están en línea con el archivo con el que planea
trabajar:
La primera fila de la hoja de cálculo generalmente se reserva
para el encabezado, que describe lo que representan los datos de
cada columna a menos que los datos de la hoja de cálculo sean
píxeles de imágenes.
Evite el encabezado de campo de nombres o valores con
espacios en blanco o nombres compuestos de varias palabras
que tengan espacios o espacios entre ellas. Considere usar el
formato PEP-8 estándar de Python como:
o Subraya
o Guiones
o Caso camel, donde la primera letra de cada sección del
texto está en mayúsculas, o
Prefiere usar nombres cortos en lugar de nombres u oraciones
largas,
Trate de evitar el uso de nombres que contengan caracteres
especiales como , ,, , etc., ya que los caracteres especiales no
dicen nada sobre los datos.?$%^
Es posible que falten valores en algunos datos. Asegúrese de
llenarlos con NA o llenarlos con la media o mediana de la
columna completa.
Mientras trabaja con Microsoft Excel, encontrará una cantidad
considerable de opciones para guardar su archivo. Además de la
extensión predeterminada o , puede ir a la pestaña "Archivo", hacer
clic en "Guardar como" y seleccionar una de las extensiones que
figuran como las opciones de extensión de archivo "Guardar como
tipo". Las extensiones más utilizadas para guardar conjuntos de datos
para la ciencia de datos son y (como archivo de texto delimitado por
tabulaciones) e incluso . Dependiendo de la opción de guardado que
elija, los campos de su conjunto de datos están separados por pestañas
o comas, que formarán los "caracteres separadores de campos" de su
conjunto de datos..[Link]
Conocer la extensión de su archivo es importante ya que cuando carga
los datos almacenados en Excel, su biblioteca de Python necesitaría
saber explícitamente si es un archivo separado por comas o por
tabulaciones.
A continuación se muestran todas las extensiones de archivo que MS
excel admite:
Preparación del espacio de trabajo (opcional)
Preparar su espacio de trabajo es bueno para tener un paso en su
canalización, pero no es un paso obligatorio y se puede omitir. Pero
tener esto como un primer paso en su tubería hace la vida más simple
y garantiza que comience bien.
Compruebe que el directorio de trabajo es el mismo que el directorio
de la base de código de Python.
Cuando trabaje en el terminal, primero puede navegar al directorio en
el que se encuentra su archivo y luego iniciar Python. ¡Eso también
significa que debe asegurarse de que su archivo se encuentre en el
directorio desde el que desea trabajar!
Pero alguien que es un principiante y ya ha comenzado su sesión de
Python y no tiene idea del directorio en el que está trabajando; debe
considerar la posibilidad de ejecutar los siguientes comandos:
# Import `os`
import os
# Retrieve current working directory (`cwd`)
cwd = [Link]()
cwd
# Change directory
[Link]("/path/to/your/folder")
# List all files and directories in current directory
[Link]('.')
Otra forma podría ser si realiza un seguimiento de dónde se guarda su
archivo de conjunto de datos. También puede dar la ruta absoluta de
esa carpeta en su código en lugar de cambiar el directorio donde
planea escribir el código Python. La ruta absoluta asegurará que no
importa dónde escriba el código Python, ¡podrá obtener los datos por
usted!
Verá que estos comandos son bastante vitales, no solo para cargar sus
datos, sino también para un análisis más detallado. Por ahora,
sigamos. Ha pasado por todas las comprobaciones, ha guardado sus
datos y ha preparado su espacio de trabajo.
Antes de que finalmente comience a leer los datos en Python, queda
una cosa más: instalar los paquetes necesarios para leer y escribir
archivos de Excel.
Instalar paquetes para leer y escribir archivos de
Excel
Asegúrese de tener e instalado en su sistema. No use Python 2 ya que
ha sido descontinuado y asegúrese de tener Python 3 > = 3.4 instalado,
no tendrá que preocuparse porque normalmente ya lo tendrá listo. Si
ya tiene Python3, solo asegúrese de haber actualizado a la última
versió[Link]
Si no tiene Python instalado en su sistema, no dude en consultar este
tutorial.
Compruebe si su comando pip o pip3 está vinculado simbólicamente a
Python3, use el que está vinculado a la versión actual de Python (> =
3.4) que planea usar en este tutorial. Además, verifique escribiendo en
el terminal qué versión muestra si > = 2.7 o > = 3.4, si es 2.7, luego
verifique escribiendo , si esto funciona, entonces significa que tiene
dos versiones diferentes de Python instaladas en su
sistema. PythonPython3
Para ello, ejecute el siguiente comando en su terminal:
# For Linux/OS X
pip install -U pip setuptools or pip3 install -U pip3
setuptools
# For Windows
python -m pip install -U pip setuptools or python3 -m pip
install -U pip setuptools
En caso de que aún no lo haya instalado, ejecute el script de Python
que puede encontrar aquí. También puede seguir las instrucciones de
instalación en la página si necesita más ayuda para que todo funcione
correctamente. Incluso puede consultar este enlace para instalar pip en
caso de que el primer enlace no funcione para [Link]
¡Instalar Anaconda es el camino a seguir!
Anaconda Python Distribution es probablemente lo que debería estar
buscando porque viene incluido con casi todo lo que necesitaría para
comenzar su viaje de ciencia de datos. A partir de Python, Pip,
Pandas, Numpy, Matplotlib, etc. todo se instalará en su interior. Esto
le proporcionaría una manera fácil y rápida de comenzar a hacer
ciencia de datos porque no tendrá que preocuparse por instalar por
separado los paquetes que necesita para hacer ciencia de datos. Sin
embargo, todavía habría muchos paquetes que podrían no estar
cubiertos por Anaconda, que podría instalar manualmente a través de
Pip o construir desde la fuente.
Anaconda es útil no solo para principiantes, sino también útil y muy
considerado por desarrolladores experimentados. Es una forma de
probar rápidamente alguna prueba de concepto sin tener que instalar
cada paquete por separado, lo que ahorra mucho tiempo.
Anaconda incluye 100 de los paquetes Python, R y Scala más
populares para la ciencia de datos y varios entornos de desarrollo de
código abierto como Jupyter Lab/ Notebook y Spyder IDE. Si desea
comenzar a trabajar con Jupyter Notebook después de este tutorial,
vaya a esta página.
Puede ir aquí para instalar Anaconda. Para saber cómo instalar
Anaconda, consulte la documentación. Siga las instrucciones para
instalar y ¡estará listo para comenzar!
¡Enhorabuena, su entorno ha sido configurado!
Está listo para comenzar a cargar sus archivos y analizarlos.
Cargar archivos de Excel como Pandas DataFrames
El paquete Pandas es una de las mejores formas que a menudo puede
utilizar para importar su conjunto de datos y representarlo en un
formato tabular de fila y columna. La biblioteca de Pandas está
construida sobre Numerical Python conocida popularmente como
NumPy y proporciona estructuras de datos y herramientas de análisis
de datos fáciles de usar para el lenguaje de programación Python. ¡Los
pandas tienen funciones incorporadas que podrían usarse para analizar
y trazar sus datos y darles sentido!
Debido al poder y la flexibilidad que proporciona esta biblioteca, se ha
convertido en la primera opción de cada científico de datos. Por
supuesto, hay algunas desventajas de esta biblioteca; especialmente
cuando se trata de grandes conjuntos de datos, puede ser más lento en
la carga, lectura y análisis de grandes conjuntos de datos con millones
de registros.
Si ya tienes Pandas disponibles a través de Anaconda, puedes cargar
tu archivo de Excel en Pandas DataFrames con función como se
muestra a continuación:[Link]()
Simplemente cree un archivo ficticio y complete algunos valores
arbitrarios en filas y columnas y guárdelo en un
[Link]
# Import pandas
import pandas as pd
# Assign spreadsheet filename to `file`
file = '[Link]'
# Load spreadsheet
xl = [Link](file)
# Print the sheet names
print(xl.sheet_names)
# Load a sheet into a DataFrame by name: df1
df1 = [Link]('Sheet1')
Si no instaló Anaconda, es posible que reciba un error. Simplemente
ejecute en un terminal o en una celda de jupyter notebook para instalar
el paquete Pandas en su entorno y luego ejecute los comandos
incluidos en el fragmento de código [Link] modulepip
install pandas!pip install pandas
Es tan simple, ¿verdad?
Para leer en archivos, tiene una función similar para cargar los datos
en un DataFrame: . Aquí hay un ejemplo de cómo puede usar esta
función:.csvread_csv()
# Import pandas
import pandas as pd
# Load csv
df = pd.read_csv("[Link]")
La función tiene un argumento que actúa como delimitador que esta
función tendrá en cuenta es una coma o una tabulación, por defecto se
establece en una coma, pero puede especificar un delimitador
alternativo si lo desea. Vaya a la documentación para averiguar qué
otros argumentos puede especificar para importar su archivo y
cargarlo [Link].read_csv()sep
Cómo escribir Pandas DataFrames en archivos de Excel
Dado que carga y lee los archivos con o formato de archivo en Pandas,
de manera similar, puede guardar los marcos de datos de pandas como
un archivo de Excel con una extensión o como un archivo. Digamos
que después del análisis de datos y las predicciones de aprendizaje
automático, desea escribir los datos actualizados o el resultado en un
nuevo archivo. Puedes lograrlo usando la función
pandas..[Link].csvto_excel()
Pero, antes de usar esta función, asegúrese de tener la instalada si
desea escribir sus datos en varias hojas de cálculo en un archivo, como
se muestra a continuación:[Link]
# Install `XlsxWriter`
!pip install XlsxWriter
import pandas as pd
# Specify a writer
writer = [Link]('[Link]',
engine='xlsxwriter')
# Write your DataFrame to a file
# yourData is a dataframe that you are interested in
writing as an excel file
yourData.to_excel(writer, 'Sheet1')
# Save the result
[Link]()
Desglosemos el fragmento de código anterior y entendámoslo paso a
paso:
Primero se define el origen en el que se guardará la salida del
marco de datos mediante un objeto para generar el
[Link]
La función toma dos argumentos, el nombre de archivo y el
motor es el .[Link]
A continuación, pase la variable a la función y también
especifique el nombre de la hoja. De esta manera, agrega una
hoja con los datos a un libro existente, que podría tener muchas
hojas de cálculo en un libro: puede usar el para guardar varios
DataFrames diferentes en un libro que tenga varias
hojas.writerto_excel()ExcelWriter
Una opción mucho mejor y sencilla es escribir datos en extensión.
Como vio anteriormente, cómo puede leer el archivo usando , también
puede escribir los resultados del marco de datos en un archivo
separado por comas utilizando el método pandas como se muestra a
continuación:.csv.csvread_csvto_csv()
# Write the DataFrame to csv
df.to_csv("[Link]")
Si desea guardar la salida de una manera separada por tabulaciones,
todo lo que necesita hacer es pasar una al argumento. Tenga en cuenta
que hay varias otras funciones y formas que puede utilizar para
escribir sus archivos. Incluso puede pasar el argumento y a la función.
Puedes encontrarlos todos aquí.\tsepheaderindexto_csv
Uso de Conda Environment
El consejo general para instalar estos paquetes es hacerlo en un
Python o Anaconda sin paquetes del sistema. La ventaja de instalar
paquetes dentro de un entorno virtual es que no actualiza ni degrada
los paquetes base del sistema, y podría tener diferentes entornos conda
para diferentes [Link]
Para comenzar a trabajar con virtualenv, primero debe instalarlo.
Instalar un entorno virtual es muy sencillo, especialmente con
Anaconda. En su base, anaconda simplemente crea el entorno virtual
con un nombre y la versión de Python que desea que use.
Simplemente actívelo, instale los paquetes que necesite y vaya a la
carpeta de su proyecto.
Consejo:¡no olvides desactivar el entorno cuando hayas terminado!
# Install virtualenv
$ conda create --name excel python=3.5
# Activate `excel`
$ conda activate excel
# Go to the folder of your project
$ cd my_folder
# Deactivate `excel`
$ conda deactivate
Tener entornos virtuales hace la vida muy simple. Imagínese que,
como desarrollador, trabajará en múltiples proyectos diferentes, y cada
proyecto podría necesitar un paquete diferente con diferentes
versiones. Cuando sus proyectos tienen requisitos contradictorios, ¡el
entorno virtual será útil!
De lo contrario, seguiría dando vueltas en la instalación de un paquete,
luego lo actualizaría para un proyecto y lo degradaría para otro. Una
idea mucho mejor sería tener diferentes entornos para cada proyecto.
Ahora finalmente puede comenzar a instalar e importar los paquetes
que ha leído para cargar en los datos de su hoja de cálculo.
Cómo leer y escribir archivos de Excel con Openpyxl
Se recomienda el paquete Openpyxl si desea leer y escribir , , y
formatos de archivo..xlsxxlsmxltxxltm
Puede instalar usando pero dentro del entorno conda, como se muestra
en la celda de código a continuació[Link]
Puedes leer más sobre aquí.openpyxl
# Activate virtualenv
$ conda activate excel
# Install `openpyxl` in `excel`
$ pip install openpyxl
Ahora que ha instalado , puede comenzar a cargar en los
[Link]
Pero antes de cargar los datos, tendría que crearlo.
Para crear los datos, puede seguir el siguiente libro, que tiene tres
hojas que cargará en Python:
La función toma el nombre de archivo como argumento y devuelve un
objeto , que representa el archivo. Puede comprobar el tipo de
ejecutando .load_workbook()workbookwbwbtype(wb)
# Import `load_workbook` module from `openpyxl`
from openpyxl import load_workbook
# Load in the workbook
wb = load_workbook('[Link]')
# Get sheet names
print([Link])
['Sheet1', 'Sheet2', 'Sheet3']
Verá que el fragmento de código anterior devuelve los nombres de
hoja del libro que cargó en Python. A continuación, puede usar esta
información también para recuperar hojas separadas del libro.
También puede comprobar qué hoja está activa actualmente con .
Como puede ver en el código siguiente, también puede cargar otra
hoja desde el libro:[Link]
# Get a sheet by name
sheet = wb['Sheet1']
# Print the sheet title
print('Sheet Title:',[Link])
# Get currently active sheet
anotherSheet = [Link]
# Check `anotherSheet`
print(anotherSheet)
Sheet Title: Sheet1
<Worksheet "Sheet1">
Aunque pensarás que estos objetos no son de utilidad al principio,
puedes hacer muchas cosas con estos. Al igual que puede recuperar
valores de celdas específicas de la hoja del libro mediante corchetes, y
entre corchetes, pasaría la celda exacta desde la que desea recuperar el
[Link][]
Esta forma de extraer valores de una celda es bastante similar en
espíritu a seleccionar y extraer valores de matrices NumPy y marcos
de datos Pandas a través de posiciones de índice. Pero con Openpyxl,
debe especificar el atributo además de especificar el índice de donde
desea extraer el valor como se muestra a continuación:.value
# Retrieve the value of a certain cell
print(sheet['A1'].value)
# Select element 'B3' of your sheet
c = sheet['B3']
# Retrieve the row number of your element
print('Row No.:', [Link])
# Retrieve the column number of your element
print('Column Letter:', [Link])
# Retrieve the coordinates of the cell
print('Coordinates of cell:', [Link])
ID
Row No.: 3
Column Letter: 2
Coordinates of cell: B3
Como puede ver, además del atributo, hay otros atributos que puede
usar para inspeccionar su celda como , ,
y .valuerowcolumncoordinate
De la salida de celda de código anterior al seleccionar el elemento de
sheet1:B3
El atributo da row3;
Al agregar el atributo, se obtiene , ycolumn2
El de la célula da .coordinateB3
Esta era información sobre las celdas, ¿qué pasa si desea recuperar los
valores de las celdas?
Puede recuperar los valores de celda mediante la función. Todo lo que
necesita hacer es pasar los argumentos y agregar el atributo al final,
como se muestra a continuación:[Link]()[Link]
# Retrieve cell value
print([Link](row=1, column=2).value)
AGE
Para extraer valores continuamente en lugar de seleccionar
manualmente el índice de fila y columna, puede utilizar el bucle junto
con la ayuda de la funció[Link]()
Esto le daría mucha flexibilidad en términos de extraer los valores de
las celdas sin mucha codificación. Imprimamos los valores de las filas
que tienen valores en la columna 2. Si esas celdas en particular están
vacías, simplemente regresará.None
Si desea saber más sobre los bucles, considere tomar nuestro
curso intermedio de Python para ciencia de datos.
# Print out values in column 2
for i in range(1, 4):
print(i, [Link](row=i, column=2).value)
1 AGE
2 22
3 15
El tiene una clase que tiene dos métodos y . Como su nombre indica,
el primero devuelve la letra dado el número / entero y el segundo
devuelve el número proporcionado una letra como una
cadena.openpyxlutilityget_column_lettercolumn_index_f
rom_string
Puedes ver cómo funciona a continuación:
# Import relevant modules from `[Link]`
from [Link] import get_column_letter,
column_index_from_string
# Return 'A'
print('Column Letter:', get_column_letter(1))
# Return '1'
print('Column Index:', column_index_from_string('A'))
Column Letter: A
Column Index: 1
Ya ha recuperado valores para filas con valores en una columna en
particular, pero ¿qué debe hacer si desea imprimir las filas de su
archivo sin centrarse solo en una columna?
¡Usas otro para el bucle, por supuesto!
Usted dice, por ejemplo, que desea centrarse en el área entre y , donde
el primero especifica la esquina superior izquierda y el segundo en la
esquina inferior derecha del área en la que desea enfocar.A1C3
Esta área será la llamada que ves en la primera línea de código a
continuación. Luego dices para cada célula que se encuentra en esa
área; se imprime la coordenada y el valor que contiene esa celda.
Después del final de cada fila, imprimirá un mensaje que indica que la
fila del área se ha [Link]
Observe de nuevo cómo la selección del área es muy similar a la
selección, obtención e indexación de la lista, y los elementos de la
matriz NumPy, donde también utiliza corchetes y dos puntos para
indicar el área que desea obtener los valores. Además, ¡el bucle
anterior también hace un buen uso de los atributos de la celda!:
Para que la explicación anterior y el código sean visuales, es posible
que desee comprobar el resultado que obtendrá una vez que el bucle
haya finalizado:
# Print row per row
for cellObj in sheet['A1':'C3']:
for cell in cellObj:
print([Link], [Link])
print('--- END ---')
A1 ID
B1 AGE
C1 SCORE
--- END ---
A2 1
B2 22
C2 5
--- END ---
A3 2
B3 15
C3 6
--- END ---
Por último, hay algunos atributos que puede usar para verificar el
resultado de su importación, a saber, y . Estos atributos son, por
supuesto, formas generales de asegurarse de que cargó los datos
correctamente, pero sin embargo, pueden y serán
útiles.max_rowmax_column
# Retrieve the maximum amount of rows
print('Max Rows:', sheet.max_row)
# Retrieve the maximum amount of columns
print('Max Columns:', sheet.max_column)
Max Rows: 4
Max Columns: 3
Genial, así que hasta ahora, viste cómo podías leer datos y
recuperarlos usando openpyxl en Python. Muchos de ustedes pueden
haber sentido que esta es una forma terriblemente difícil de trabajar
con estos archivos y cuando ni siquiera han mirado cómo pueden
manipular los datos, lo que definitivamente podría ser aún más
enrevesado.
Pero no te preocupes, ¡hay una manera mucho más fácil!
DataFrames al rescate.
Puedes utilizar la función del paquete Pandas para poner los valores
de una hoja en un DataFrame y luego utilizar todas las funciones de
data frame para analizar y manipular tus datos:DataFrame()
# Import `pandas`
import pandas as pd
# Convert Sheet to DataFrame
df = [Link]([Link])
Si desea especificar encabezados e índice, puede pasar un argumento
de encabezado con una lista de encabezados e índice como True, sin
embargo, dado que la hoja que ha convertido en marco de datos ya
tiene encabezados, no necesita agregar encabezados:
from itertools import islice
# Put the sheet values in `data`
data = [Link]
# Indicate the columns in the sheet values
cols = next(data)[1:]
# Convert your data to a list
data = list(data)
# Read in the data at index 0 for the indices
idx = [r[0] for r in data]
# Slice the data at index 1
data = (islice(r, 1, None) for r in data)
# Make your DataFrame
df = [Link](data, index=idx, columns=cols)
print(df)
AGE SCORE
1 22 5
2 15 6
3 28 9
Incluso puede anexar o escribir los valores en los archivos de Excel
como se muestra a continuación con la ayuda del método para pasar el
marco de datos que había creado anteriormente junto con el índice y el
encabezado:dataframe_to_rowsdf
# Import `dataframe_to_rows`
from [Link] import dataframe_to_rows
from openpyxl import *
# Initialize a workbook
wb = Workbook()
# Get the worksheet in the active workbook
ws = [Link]
# Append the rows of the DataFrame to your worksheet
for r in dataframe_to_rows(df, index=True, header=True):
[Link](r)
El paquete le ofrece una gran flexibilidad sobre cómo desea escribir
sus datos en archivos de Excel. Le permite cambiar los estilos de celda
y demás, lo que lo convierte en uno de esos paquetes que necesita
saber mientras trabaja con hojas de cá[Link]
Nota: Para saber más sobre cómo puedes cambiar los estilos de celda
o cómo funciona el paquete con NumPy y Pandas echa un
vistazo [Link]
Otro paquete de este tipo que es útil cuando se trata de hojas de
cálculo es . ¡Vamos a verlo!xlrd
Lectura y formato de archivos de Excel: xlrd
Este paquete es ideal si desea leer y manipular los datos de los
archivos con la extensión o..[Link]
# Import `xlrd`
import xlrd
# Open a workbook
workbook = xlrd.open_workbook('[Link]')
# Loads only current sheets to memory
workbook = xlrd.open_workbook('[Link]', on_demand =
True)
xlrd proporciona funciones que puede usar para recuperar o filtrar
solo una hoja específica y no todo el libro. Le proporciona funciones
como o para recuperar las hojas que desea utilizar en su análisis y
filtrar el resto.sheet_by_name()sheet_by_index()
# Load a specific sheet by name
worksheet = workbook.sheet_by_name('Sheet1')
# Load a specific sheet by index
worksheet = workbook.sheet_by_index(0)
# Retrieve the value from cell at indices (0,0)
[Link](1, 1).value
'ID'
Escribir sus datos en archivos de Excel con xlwt
Al igual que otros paquetes de Python de Excel, puede usarlos para
crear hojas de cálculo que tengan sus datos en ellos incluso
manualmente. También puede utilizar el paquete xlwt, aparte del
paquete. es ideal para escribir datos y formatear información en
archivos con extensiones más antiguas
como .[Link]
A primera hora, difícilmente encontrará mucha diferencia en cómo es
mejor que los paquetes de Excel anteriores que aprendió, pero tiene
más que ver con lo cómodo que se siente mientras trabaja con este
paquete en comparación con los demás.
Entendámoslo con la ayuda de un ejemplo en el que creará
manualmente un libro de trabajo utilizando código Python y escribirá
datos en él:
# Import `xlwt`
import xlwt
# Initialize a workbook
book = [Link](encoding="utf-8")
# Add a sheet to the workbook
sheet1 = book.add_sheet("Python Sheet 1")
# Write to the sheet of the workbook
[Link](0, 0, "This is the First Cell of the First
Sheet")
# Save the workbook
[Link]("[Link]")
Automatización del proceso de escritura de datos
Automatizar el proceso de escritura de datos en un archivo de Excel es
esencial, especialmente cuando desea escribir datos en el archivo pero
al mismo tiempo no desea perder tiempo ingresando manualmente los
datos en el archivo. En tales escenarios, podría automatizar toda la
canalización utilizando técnicas muy simples como un [Link]
Entendamos cómo se puede lograr:
# Initialize a workbook
book = [Link]()
# Add a sheet to the workbook
sheet1 = book.add_sheet("Sheet1")
# The data
cols = ["A", "B", "C", "D", "E"]
txt = [0,1,2,3,4]
# Loop over the rows and columns and fill in the values
for num in range(5):
row = [Link](num)
for index, col in enumerate(cols):
value = txt[index] + num
[Link](index, value)
# Save the result
[Link]("[Link]")
Rompamos el código anterior y entendámoslo paso a paso:
Primero se inicializa un libro mediante [Link]();
A continuación, agregue una hoja al libro con un
nombre Sheet1;
Luego se definen los datos, es decir, el encabezado (cols) y las
filas (txt);
A continuación, tiene un bucle for que iterará sobre los datos y
completará todos los valores en el archivo:
o Para cada elemento que va de 0 a 4, va a rellenar los
valores fila por fila.
o Especifique un elemento que vaya a la fila siguiente en
cada incremento de [Link]
o A continuación, tiene otro bucle para que para cada fila
repasa todas las columnas de su hoja.
o Rellenará un valor para cada columna de esa fila.
Cuando hayas rellenado todas las columnas de cada fila con
valores, irás a la siguiente fila hasta que te queden cero filas.
La salida del código anterior se muestra a continuación:
Uso de pyexcel para leer archivos .xls o .xlsx
pyexcel es un contenedor de Python que proporciona una única
interfaz api para leer, manipular y escribir datos en , , , y archivos.
Con , los datos en los archivos de Excel se pueden convertir en un
formato de matriz o dictado con un código
mínimo..[Link]
A continuación se muestra un ejemplo de cómo puede convertir sus
datos de Excel a un formato de matriz utilizando una función dentro
del paquete:get_array()pyexcel
# Import `pyexcel`
import pyexcel
# Get an array from the data
my_array = pyexcel.get_array(file_name="[Link]")
Averigüemos cómo puede convertir sus datos de Excel en un
diccionario ordenado de listas. Para lograr esto, puede usar la función,
y también viene dentro del paquete:get_dict()pyexcel
# Import `OrderedDict` module
from pyexcel._compact import OrderedDict
# Get your data in an ordered dictionary of lists
my_dict = pyexcel.get_dict(file_name="[Link]",
name_columns_by_row=0)
También puede obtener un diccionario de matrices bidimensionales.
En pocas palabras, puede extraer todas las hojas de libro en un solo
diccionario con la ayuda de la función.get_book_dict()
# Get your data in a dictionary of 2D arrays
book_dict = pyexcel.get_book_dict(file_name="[Link]")
Para facilitarle la vida, recuerde que las dos salidas anteriores, , y , se
pueden convertir en un DataFrame utilizando . ¡Esto hará que sea más
fácil para usted manejar sus datos!
my_dictbook_dictpd.DataFrame()
Para aprender cómo puede trabajar de manera eficiente con las listas
de Python, consulte las 18 preguntas más comunesde la lista de
Python de DataCamp.
Escribir archivos con pyexcel
Al igual que es fácil cargar sus datos en matrices con este paquete,
también puede exportar fácilmente sus matrices a una hoja de cálculo.
Puede obtener esto usando la función y pasar la matriz y el nombre del
archivo de destino al argumento como se muestra a
continuación:save_as()dest_file_name
# Get the data
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# Save the array to a file
pyexcel.save_as(array=data,
dest_file_name="array_data.xls")
Tenga en cuenta que si desea especificar un delimitador, puede
agregar el argumento y pasar el símbolo que desea utilizar como
delimitador entre , , .dest_delimiter\t,""
Sin embargo, si tiene un diccionario, deberá usar la función. Pase el
diccionario bidimensional y especifique el nombre del archivo y
listo:save_book_as()bookdict
# The data
2d_array_dictionary = {'Sheet 1': [
['ID', 'AGE', 'SCORE']
[1, 22, 5],
[2, 15, 6],
[3, 28, 9]
],
'Sheet 2': [
['X', 'Y', 'Z'],
[1, 2, 3],
[4, 5, 6]
[7, 8, 9]
],
'Sheet 3': [
['M', 'N', 'O', 'P'],
[10, 11, 12, 13],
[14, 15, 16, 17]
[18, 19, 20, 21]
]}
# Save the data to a file
pyexcel.save_book_as(bookdict=2d_array_dictionary,
dest_file_name="2d_array_data.xls")
Tenga en cuenta que el orden de sus datos en el diccionario no se
mantendrá en el código anterior. Si no desea esto, deberá hacer una
pequeña modificación. Puedes leer todo al respecto aquí.
Lectura y escritura de archivos .csv
Python tiene una enorme cantidad de paquetes para lograr tareas
similares con un conjunto diferente de bibliotecas. Por lo tanto, si
todavía está buscando paquetes que le permitan cargar, leer y escribir
datos en archivos además de paquetes de Excel y Pandas, puede
considerar usar el paquete como se muestra en la celda de código a
continuación:.csvCSV
# import `csv`
import csv
# Read in csv file
for row in [Link](open('[Link]'), delimiter=','):
print(row)
# Write csv file
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
outfile = open('[Link]', 'w')
writer = [Link](outfile, delimiter=';', quotechar='"')
[Link](data)
[Link]()
Comprobación final de los datos
Cuando tenga los datos disponibles, generalmente se recomienda
verificar si los datos se han cargado correctamente. Si ha puesto sus
datos en un DataFrame, puede verificar fácil y rápidamente si los
datos se han cargado como se esperaba mediante la ejecución y las
funciones. El generará las primeras filas del marco de datos, mientras
que el generará las últimas filas del marco de
[Link]()tail()head()tail()
# Check the first entries of the DataFrame
[Link]()
# Check the last entries of the DataFrame
[Link]()
Consejo: haga uso de la hoja de trucos de Pandas de DataCamp, esto
sería útil cuando cargue archivos como Pandas DataFrames. Para
obtener más orientación sobre cómo manipular Python DataFrames,
tome nuestro Tutorial de Pandas: DataFrames en Python.
Vamos a comprobar la forma, las dimensiones y el tipo de datos del
marco de datos:data
# Inspect the shape
[Link]
# Inspect the number of dimensions
[Link]
# Inspect the data type
[Link]
Si desea saber más sobre cómo puede aprovechar las matrices NumPy
para el análisis de datos, considere revisar nuestro tutorial NumPyy no
olvide usar nuestra hoja de trucos Golden NumPy.
Conclusión
¡Enhorabuena por terminar este tutorial!
Ha pasado con éxito por nuestro tutorial que le enseñó todo sobre
cómo leer archivos de Excel en Python.
Pero la importación de datos es solo el comienzo de su flujo de trabajo
de ciencia de datos. Una vez que tenga los datos de sus hojas de
cálculo en su entorno, puede centrarse en lo que importa: analizar sus
datos. Si has cargado tus datos en DataFrames, considera tomar
nuestro curso Pandas Foundations o Manipular DataFrames con
cursos Pandas.
Sin embargo, si desea continuar trabajando en este tema, considere
revisar PyXll,que le permite escribir funciones en Python y llamarlas
en Excel.
¡Utilice DataCamp Workspace para experimentar con el código de este
tutorial!
Abrir en el espacio de trabajo