un crack.... en serio gente asi se necesitan toda la info esta en internet pero hacer casos practicos es otra cosa... yo le agregue a la def que me hiciera el filtro de acuerdo al nombre que le vaya dando como parametro, me sirvio mucho igual hacerl colab. Gracias Compa...
Perfecto, todo nítido, por ahí estuve viendo un curso en inglés, me di cuenta que esa persona se complica demasiado para trabajar con esta librería , demasiados ciclos demasiado código, tú hiciste lo que el hizo de manera más sencilla y sin tanta necedad de iterar tantas celdas y columnas
Que barbaridad! Ni siquiera conozco tu canal ni nada de tu contenido pero me apareció este video al estar viendo otros similares pero déjame decirte algo: Este video está brutalmente útil! Realmente me emocionó más que la película de Venom vs Carnage😆😆😆 Eres un máster para explicar y con algo súper básico. Te regalo mi like y me suscribo! Felicidades Frank
Me gusta tu forma de explicar, sin tantas vueltas. He visto hartos cursos en inglés y a pesar de que son buenos, dan muchas vueltas y complican demasiado las cosas con estas librerías. Gracias sigue asi explicando de manera simple, cuando pueda compro tu curso en Udemy.
Ufff genial contenido, no he mirado a detalle tu canal, me acabé de suscribir, puedes o tienes un video de lo mismo pero usando Power BI¡? por favor - quiza usando SQL con Python
Excelente video! Lo unico es que al final, se te olvido colocar la extension .xlsx a varias variables. Aqui pongo el código completo: import pandas as pd import openpyxl as px from openpyxl.chart import BarChart, Reference from openpyxl.styles import Font import string def automatizar_excel(nombre_archivo): """Input sales_mes.xlsx / Output report_mes.xlsx""" archivo_excel = pd.read_excel(nombre_archivo) tabla_pivote = pd.pivot_table(data=archivo_excel, index="Gender", columns="Product line", values="Total", aggfunc="sum").round(0) mes_extension = nombre_archivo.split("_")[1] tabla_pivote.to_excel(f"sales_{mes_extension}.xlsx", startcol=4, startrow=5, sheet_name="Report") # Usando openpyxl puedo cargar el archivo de excel wb = px.load_workbook(f"sales_{mes_extension}.xlsx") # Aqui indico la hoja o sheet que vamos a usar. pestaña = wb["Report"] # Visualizo cuales son las columnas y filas (maximas y minimas). Con control + D, duplicamos la ultima linea de código. # Esto nos ayuda a tener controlado el tamaño de la tabla, independientemente de si esta creciendo. min_col = wb.active.min_column max_col = wb.active.max_column min_fila = wb.active.min_row max_fila = wb.active.max_row # Graficos barchart = BarChart() # Creamos el objeto data = Reference(pestaña, min_col=min_col+1, max_col=max_col, min_row=min_fila, max_row=max_fila) # Columnas categorias = Reference(pestaña, min_col=min_col, max_col=min_col, min_row=min_fila+1, max_row=max_fila) # Filas barchart.add_data(data, titles_from_data=True) # Agregamos información de las columnas. barchart.set_categories(categorias) # Agregamos información de las filas. pestaña.add_chart(barchart, "E14") barchart.title = "Ventas" barchart.style = 2 # Estilo del grafico # Enseña las letras del abecedario en mayusculas. abecedario = list(string.ascii_uppercase) # print(abecedario[min_col:max_col]) # Delimito las letras del abecedario que aparecen en el listado. abc_excel = abecedario[min_col:max_col] # Con el bucle for podemos hacer la sumatoria de todas las columnas de forma automatica. Tambien tendra en cuenta # si se incluyen mas filas o columnas en el reporte. for i in abc_excel: pestaña[f"{i}{max_fila+1}"] = f"=SUM({i}{min_fila+1}:{i}{max_fila})" pestaña[f"{i}{max_fila+1}"].style = "Currency" pestaña[f"{abecedario[4]}{max_fila+1}"] = "Total" pestaña["A1"] = "Reporte" mes = mes_extension.split(".")[0] pestaña["A2"] = mes pestaña["A1"].font = Font("Arial", bold=True, size=20) pestaña["A2"].font = Font("Arial", bold=True, size=15) wb.save(f"sales_{mes_extension}.xlsx") return # Automatizar reportes por años automatizar_excel("sales_2020_report.xlsx") # Automatizar reportes por meses automatizar_excel("sales_enero_report.xlsx") automatizar_excel("sales_febrero_report.xlsx") automatizar_excel("sales_marzo_report.xlsx")
Hola Frank como estas? pregunta, haces consultas? tengo informes diarios que actualizar y quería saber si hay forma desde un disco compartido, poder realizar la automatización
🔥 Curso Completo de Automatización (Udemy): www.udemy.com/course/automatiza-tu-vida-con-python/?referralCode=F61B2EBEB2695B3D7177 🎁 Promoción (Solo en mi página): Hasta 50% y 100% de descuento por la compra del segundo/tercer curso. thepycoach.teachable.com/p/spanish ✅ Descarga mi Formulario de Python uniéndote a mi servidor de Discord (PDF Gratuito). Incluye las librerías Pandas, Numpy, Scikit-Learn, Selenium y más 👉discord.gg/6xyQaj8bJK
Hola, una pregunta, tengo un Excel que es un Mix en una pestaña, es decir tiene varias Tablas, Imagenes...etc y quisiera obtener cada una de ellas y poder manipularlas para generar un Excel en un formato diferente.. recomiendas utilizar la libreria OPENPYML o con PANDAS puedo obtener mejores resultados... Gracias
Si solo quieres manipular la data y arrojar otro resultado deberías usar Pandas. Si quieres generar graficos y formatos nativos de Excel, deberias usar Openpyxl
Hola, tu manera de explicar es muy directa y muy buena, yo en lo personal tengo una duda haber si me podrías ayudar, estoy utilizando DJANGO hago la consulta pero a la hora de enviar a excel una formula con (DATEDIF) lo guarda sin problema pero a la hora de abrirlo de da un mensaje que el libro tiene errores. Que puedo Hacer? y en que librería consigo esa función? de antemano te doy las gracias si me puedes guiar
Hola, gracias por este video . Podria dar el mismo resultado sin llamar a una tabla dinamica, por python y exportar datos a excel? Y lo otroes consultarte si es posible de llamar a una pagina web donde descargo bases de datos en excel. Quiero automatizar reportes. Sirve?
min 28:50, Para en caso de que no se pueda conocer una celda fija para insertar el gráfico: def num_to_alphabet(num_columna): cadena="" resto=int(num_columna) combinacion_lineal=list() it_lim_seguridad=10 it=0 while (it0 and resto%26==0: combinacion_lineal.append(26) resto-=26 else: combinacion_lineal.append(resto%26) resto-=resto%26 resto/=26 resto=int(resto) it+=1 lista_alfabeto=["","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] for i in combinacion_lineal: cadena=lista_alfabeto[i]+cadena # Para invertir una cadena de texto: 'cadena[::-1]' return cadena # Test # mitest_input=[26,27,45,52,53,149,259,389,466,521,582,633,702,703,728,729,1422,3627,10137,10140,10141,16384,17576,18252,18278] # mitest_output=[num_to_alphabet(i) for i in mitest_input] # print(mitest_input) # print(mitest_output) . . . # Añadir este gráfico dentro de mi archivo de excel pestana.add_chart(barchart, f"{num_to_alphabet(min_colu+1)}{str(max_fila+6)}") barchart.title="Ventas" barchart.style=5 wb.save("sales_2021.xlsx")
Consulta, si hago gráficos en excel con python en mi equipo, ese mismo archivo lo puedo trabajar en otra computadora que no tiene instalado python; modificar registros de la base y actualizar los gráficos?. Hago esta consulta, porque pretendo trabajar mi archivo excel con python en casa y después abrirlo en la empresa donde trabajo para que otros compañeros también tengan acceso a la información del archivo. El tema es que la empresa no tiene instalado la licencia de Python
Excelente video amigo, una consulta. Existe una forma de poder trabajar una base en Excel y guardarla en una ya existente sin que se borren las demás otras pestañas?
Sí se puede, aquí un ejemplo: book = openpyxl.load_workbook('nombre_reporte.xlsx') #Already existing workbook writer = pd.ExcelWriter('nombre_reporte.xlsx', engine='openpyxl') #Using openpyxl #Migrating the already existing worksheets to writer writer.book = book writer.sheets = {x.title: x for x in book.worksheets} df1.to_excel(writer, sheet_name='nombre_hoja') writer.save() writer.close()
Estuvo interesante el video, yo recién empiezo a aprender Python, y quisiera saber como hacer para que ese código lo pudiera convertir en un ejecutable y así poderlo instalar en distintas computadoras, es posible?
¡Claro! Revisa este tutorial que hice -> th-cam.com/video/FFE1VNMAZfc/w-d-xo.html Es sobre una librería para convertir el script en ejecutable (.exe). En el video explico que hay que hacer unas pequeñas modificaciones al código. Por suerte hice un ejemplo con el código que usé en este video (el script original y script con las modificaciones para el exe están en el link de la descripción de este y el otro video)
Yo no creo que se pueda así nomás 🤔 en su defecto, se me ocurre que primero pudieras "convertir" ese PDF a Excel y ahí sí aplicar la magia de Python o bien s través de macros desde el mismo Excel.
necesito realizar un algoritmo en el cual debo extraer el valor de varias celdas de una hoja para posterior actualizarlos en otra hoja diferente, cree que se pueda utilizar las funciones que utilizan en el video o existe alguna otra librería mejor?
Claro. Solo tendrías que escribir la función que quieres hacer así como hice en el f'=SUM({i}{min_fila+1}:{i}{max_fila})' En este caso sería la función que referencia valores de una hoja de cálculo hacia otra. Por ejemplo si quieres extraer el dato de la celda A1 de hoja 1 a la hoja 2. Sería algo así f'=Sheet1!A1' Claro, primero tendrías que cambiar de hoja así como hice en este video (pestaña = wb['hoja2']) Por cierto, mi Excel está en inglés por eso me sale Sheet1!A1, quizas en la versión en español diga Hoja1!A1. Revisa.
Muchas gracias por el video. Me gustaría me resolviera una duda, por qué realizar este reporte en python y no directamente en excel? Puede cargar mayor cantidad de datos? Mayor velocidad? Estoy aprendiendo python pero me gustaría me resolviera la duda. Muy amable
Tengo la misma duda. Cuento con conocimiento de Excel y Drive, y lo mismo que se hace con Python lo podes hacer desde la hoja de calculo. Comparto contigo, yo recién me estoy adentrando a Python y no le veo mucha ganancia por el momento. Es mas, siento que vuelvo a la Prehistoria dada las herramientas que da Excel en la actualidad.
Frank una duda: yo tengo instalado en mi computadora LibreOffice en vez de Excel. Funciona todo esto sin el Excel? En mi caso no funcionó. No abre nada. Solo se ejecuta el programa sin errores ni nada pero tampoco veo nada en la ventana en donde se muestra la salida :| muchas gracias por responder.
Funciona en el Libre Office, yo lo uso. Lo unico es que en la llamada a la funcion tuve que llamar al archivo supermarket, no a sales, sino como hace la tabla pivote? asi a mi me funciono a la perfeccion, sino daba error.
Hola, buen video. Lo he intentado paso a paso, pero me esta dando un error: Traceback (most recent call last): File "c:\Users\vidap\OneDrive\Escritorio\UnirExcel\Reporte.py", line 40, in categorias = Reference(sheetReport, min_col=minCol, max_Col=maxCol, min_row= minFila+1, max_row=maxFila) TypeError: Reference.__init__() got an unexpected keyword argument 'max_Col' En el script de Phyton, he notado que no me recnoce los parametros min_col, max_col, in_row_ max_row, como podria hacer para resoverlo?
Hola Frank esta super tu manera de explicar pero yo en particular tengo una duda haber si me podrías ayudar, a partir de una consulta yo genero un Excel que lo muestra con los nombres que tengo en la tabla pero si quiero cambiarle los nombres a las columnas en el Excel y además cambiar el orden de las columnas como se muestran como podría hacer estaría agradecido si me pudieras ayudar
3 ปีที่แล้ว +1
Hola! Me he quedado atascado al principio del vídeo ya que me da este error: tabla_pivote.to_excel("sales_2021.xlsx", startrow=4, sheet_name="Report") AttributeError: 'tuple' object has no attribute 'to_excel' ¿Alguna ayuda para continuar?
La variable tabla_pivote tiene que ser un dataframe de lo contrario no va a funcionar el .to_excel() No entiendo porque tu variable tabla_pivote es una tupla. Si seguiste los pasos del video deberia ser un dataframe 🤔
Hola Frank. te hago una consulta, intento instalar pandas en python 3.10 y no me deja usando el comando pip en la consola ni tampoco a través de pycharm. que puedo hacer?
No sabría decirte. Yo tengo Python 3.8. No suelo actualizar con tanta frecuencia para evitar algún error. De todas formas me parece muy raro. El comando pip debería funcionar siempre. Quizás puede intentar crear un nuevo entorno virtual e iniciar desde cero. Hay un vídeo en el canal de cómo hacer eso
Hola que tal. Descargué el archivo supermarket_sales e instalé los paquetes. ni bien intento leerlo me sale el siguiente error: FileNotFoundError: [Errno 2] No such file or directory: 'supermarket_sales.xlsx' que debo hacer?
El error indica que el archivo no fue encontrado en tu directorio. Mueve el archivo supermarket_sales a la carpeta donde se encuentra tu script de Python. Avísame si te funcionó.
buen día en la linea barchart.add_data(data,titles_from_data=True) el resultado que me genera es: AttributeError: module 'openpyxl.chart.bar_chart' has no attribute 'add_data' Que podría ser lo que sucede? Gracias por su orientación. Excelente clase
Hola Frank , muchas gracias por el aporte esta genial, TEngo un inconveniente y ese no me deja asociar la columna del excel en el for ...me aparece Key Error cuando le coloco el nombre de la columna :( quizas me puedas ayudar .
Muy buen video!! Yo tengo una consulta, como puedo comparar la información de 2 hojas de calculo con Python?? Trabajo para un ferretería y ocupo comparar los precios de las facturas de nuestro local y de los proveedores para verificar que concuerden, generalmente uso "vlookup" (buscarv) pero quiero que solo me arroje la informacion de las facturas cuyos precios no concuerdan en una hoja (pestaña) nueva. En mi libro de Excel, tengo 2 pestañas, una con las facturas de nuestro local y otra pestaña con las facturas de los proveedores. Saludos!
Disculpa me sale esto, pero el archivo esta en la misma carpeta FileNotFoundError: [Errno 2] No such file or directory: 'Mall_Customers.xlsx' podrías ayudarme por fa
En Windows o Mac tienes 2 opciones: 1. Coloca el archivo Excel en a ruta donde esta tu script de Python. De este modo, solo necesitas escribir el nombre del archivo dentro de paréntesis y no la ruta completa 2. Haz clic derecho sobre el archivo Excel y selecciona Propiedades. Luego copia la ruta y listo. (Solo Windows)
cuando hago el print del minuto 4:44 me sale esto: "ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd." Entonces hago pip install xlrd , vuelvo a darle a run y ahora el error es este: " raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') xlrd.biffh.XLRDError: Excel xlsx file; not supported " No entinedo por qué da ese error, yo esto escribiendo esto: import pandas as pd import openpyxl archivo_excel = pd.read_excel('eventos_de_amenaza_parseado.xlsx') print(archivo_excel) y el archivo eventos_de_amenaza_parseado.xlsx es un csv convertido a libro de excel (sin celdas en blanco) y parseado en columnas, con formato xlsx como se ve en el video.
Me parece que tiene que ver con la extensión del archivo. Intenta copiar la data de este archivo 'eventos_de_amenaza_parseado.xlsx' y pegarla en un archivo nuevo. Guárdalo y repite los pasos colocando el nombre de este archivo. Esto debería solucionarlo.
un crack.... en serio gente asi se necesitan toda la info esta en internet pero hacer casos practicos es otra cosa... yo le agregue a la def que me hiciera el filtro de acuerdo al nombre que le vaya dando como parametro, me sirvio mucho igual hacerl colab. Gracias Compa...
Estoy dando mis primeros pasos con Python. Este video es fantástico. Enseña mucho y explica todo detalladamente. Agradecido eternamente.
Perfecto, todo nítido, por ahí estuve viendo un curso en inglés, me di cuenta que esa persona se complica demasiado para trabajar con esta librería , demasiados ciclos demasiado código, tú hiciste lo que el hizo de manera más sencilla y sin tanta necedad de iterar tantas celdas y columnas
Que barbaridad! Ni siquiera conozco tu canal ni nada de tu contenido pero me apareció este video al estar viendo otros similares pero déjame decirte algo:
Este video está brutalmente útil! Realmente me emocionó más que la película de Venom vs Carnage😆😆😆
Eres un máster para explicar y con algo súper básico. Te regalo mi like y me suscribo!
Felicidades Frank
Gracias :)
Me gusta tu forma de explicar, sin tantas vueltas. He visto hartos cursos en inglés y a pesar de que son buenos, dan muchas vueltas y complican demasiado las cosas con estas librerías. Gracias sigue asi explicando de manera simple, cuando pueda compro tu curso en Udemy.
Eres realmente una bendicion hermano, buen curso te entiendo todo lo que dices.
Excelente explicación, he aprendido mucho. Gracias. Voy a seguir viendo sus videos.
Lo maximo, Frank me encanto lo practico que hiciste la clase. Aprendi :)
Amigo sigue así, tu manera de explicar es excelente gracias por tanto.
Excelente!!! Me has abierto un abanico de ideas para trabajar en mis reportes.
Gracias, me suscribo
¡Gracias por tu apoyo!
saludos. me uno al comentario de mike gonzales...simplemente genial todo el video. gracias.
Es bueno para una actvidad complejo.. por ahora seria mejor Filtrar . buen dato igualmente, no lo conocia. gracias saludos.
Esta genialll!!!
De verdad me ayudaste mucho, procedo a darte tu merecido LIKE
Ufff genial contenido, no he mirado a detalle tu canal, me acabé de suscribir, puedes o tienes un video de lo mismo pero usando Power BI¡? por favor - quiza usando SQL con Python
Nunca use PowerBI. Quizás pronto haga de SQL
Me gusto tanto tu contenido que inicié seción solo para darte like :), sigue así
Muy buen tutorial, me ha servido de mucho, gracias por compartir y enseñarnos.
De nada! Me alegra haberte ayudado
Excelente Frank. Gracias por compartir tus conocimientos.
Gracias! por compartir tu conocimiento, la verdad, saber como hacer estas cosas es de gran ayuda
De nada!!
Excelente video. Muy bien explicado. Es muy probable que me inscriba al curso que tienes en Udemy.
Excelente trabajo de divulgación. Genial, practico y muy pedagógico. Se agradece enormemente
Gracias por tu apoyo!
Excelente video y muy útil, gracias
Gracias por tu apoyo!
Thanks Frank! es muy bueno! me sirve mucho para mi conocimiento en Python
Me alegro de que los videos te ayuden :)
Amigoo seria de muchisima ayuda un tutorial de como enviar un correo con el reporte creado, saludos 👏🏻👏🏻👏🏻 eres un grande 👏🏻👏🏻
Buena idea! Lo voy a agregar a mi lista de proyectos de automatización
Excelente! Muchas gracias Frank!
Eres un genio
Excelente video!
Lo unico es que al final, se te olvido colocar la extension .xlsx a varias variables.
Aqui pongo el código completo:
import pandas as pd
import openpyxl as px
from openpyxl.chart import BarChart, Reference
from openpyxl.styles import Font
import string
def automatizar_excel(nombre_archivo):
"""Input sales_mes.xlsx / Output report_mes.xlsx"""
archivo_excel = pd.read_excel(nombre_archivo)
tabla_pivote = pd.pivot_table(data=archivo_excel, index="Gender", columns="Product line", values="Total",
aggfunc="sum").round(0)
mes_extension = nombre_archivo.split("_")[1]
tabla_pivote.to_excel(f"sales_{mes_extension}.xlsx", startcol=4, startrow=5, sheet_name="Report")
# Usando openpyxl puedo cargar el archivo de excel
wb = px.load_workbook(f"sales_{mes_extension}.xlsx")
# Aqui indico la hoja o sheet que vamos a usar.
pestaña = wb["Report"]
# Visualizo cuales son las columnas y filas (maximas y minimas). Con control + D, duplicamos la ultima linea de código.
# Esto nos ayuda a tener controlado el tamaño de la tabla, independientemente de si esta creciendo.
min_col = wb.active.min_column
max_col = wb.active.max_column
min_fila = wb.active.min_row
max_fila = wb.active.max_row
# Graficos
barchart = BarChart() # Creamos el objeto
data = Reference(pestaña, min_col=min_col+1, max_col=max_col, min_row=min_fila, max_row=max_fila) # Columnas
categorias = Reference(pestaña, min_col=min_col, max_col=min_col, min_row=min_fila+1, max_row=max_fila) # Filas
barchart.add_data(data, titles_from_data=True) # Agregamos información de las columnas.
barchart.set_categories(categorias) # Agregamos información de las filas.
pestaña.add_chart(barchart, "E14")
barchart.title = "Ventas"
barchart.style = 2 # Estilo del grafico
# Enseña las letras del abecedario en mayusculas.
abecedario = list(string.ascii_uppercase)
# print(abecedario[min_col:max_col])
# Delimito las letras del abecedario que aparecen en el listado.
abc_excel = abecedario[min_col:max_col]
# Con el bucle for podemos hacer la sumatoria de todas las columnas de forma automatica. Tambien tendra en cuenta
# si se incluyen mas filas o columnas en el reporte.
for i in abc_excel:
pestaña[f"{i}{max_fila+1}"] = f"=SUM({i}{min_fila+1}:{i}{max_fila})"
pestaña[f"{i}{max_fila+1}"].style = "Currency"
pestaña[f"{abecedario[4]}{max_fila+1}"] = "Total"
pestaña["A1"] = "Reporte"
mes = mes_extension.split(".")[0]
pestaña["A2"] = mes
pestaña["A1"].font = Font("Arial", bold=True, size=20)
pestaña["A2"].font = Font("Arial", bold=True, size=15)
wb.save(f"sales_{mes_extension}.xlsx")
return
# Automatizar reportes por años
automatizar_excel("sales_2020_report.xlsx")
# Automatizar reportes por meses
automatizar_excel("sales_enero_report.xlsx")
automatizar_excel("sales_febrero_report.xlsx")
automatizar_excel("sales_marzo_report.xlsx")
Hola Frank, un saludo desde Colombia. Podrías hacer un video para hacer cruces de tablas de ACCES con PYTHON ?
Nunca he trabajado con Access :(
Excelente video, me ayudó muchisimo.
Me alegra que el video te haya sido útil.
Gracias por tu video, ¿aunque como podría relacionar datos que estén en diferentes columnas y filas?
los comandos en jupyter son los mismo que en pycharm?....tus vídeos han sido de mucha ayuda
Hola Frank como estas? pregunta, haces consultas? tengo informes diarios que actualizar y quería saber si hay forma desde un disco compartido, poder realizar la automatización
🔥 Curso Completo de Automatización (Udemy): www.udemy.com/course/automatiza-tu-vida-con-python/?referralCode=F61B2EBEB2695B3D7177
🎁 Promoción (Solo en mi página): Hasta 50% y 100% de descuento por la compra del segundo/tercer curso. thepycoach.teachable.com/p/spanish
✅ Descarga mi Formulario de Python uniéndote a mi servidor de Discord (PDF Gratuito). Incluye las librerías Pandas, Numpy, Scikit-Learn, Selenium y más 👉discord.gg/6xyQaj8bJK
Sorry! Que es/contiene el Formulario de Python, Mr. Frank? Thxs. (Cual es su utilidad?)
Excelente!!! muchas gracias
De nada!
Muy buen contenido Frank!! Felicitaciones
Me alegra haberte ayudado!
Hola, excelente video. Consulta: ¿Cómo puedo darle un mejor formato al documento de excel?, ancho de celdas, color, etc
Excelente excelente video!!!
Intuitivo!
Yep!
Excelente!!
Una pregunta, esto trabaja con streams o aguanta cargar un archivo bien grande de excel de aprox 200 mbs?
Nunca he probado :(
Muito útil essa demonstração. Parabéns
Hola, una pregunta, tengo un Excel que es un Mix en una pestaña, es decir tiene varias Tablas, Imagenes...etc y quisiera obtener cada una de ellas y poder manipularlas para generar un Excel en un formato diferente.. recomiendas utilizar la libreria OPENPYML o con PANDAS puedo obtener mejores resultados... Gracias
Si solo quieres manipular la data y arrojar otro resultado deberías usar Pandas. Si quieres generar graficos y formatos nativos de Excel, deberias usar Openpyxl
Hola, tu manera de explicar es muy directa y muy buena, yo en lo personal tengo una duda haber si me podrías ayudar, estoy utilizando DJANGO hago la consulta pero a la hora de enviar a excel una formula con (DATEDIF) lo guarda sin problema pero a la hora de abrirlo de da un mensaje que el libro tiene errores. Que puedo Hacer? y en que librería consigo esa función? de antemano te doy las gracias si me puedes guiar
Hola, gracias por este video . Podria dar el mismo resultado sin llamar a una tabla dinamica, por python y exportar datos a excel? Y lo otroes consultarte si es posible de llamar a una pagina web donde descargo bases de datos en excel. Quiero automatizar reportes. Sirve?
min 28:50, Para en caso de que no se pueda conocer una celda fija para insertar el gráfico:
def num_to_alphabet(num_columna):
cadena=""
resto=int(num_columna)
combinacion_lineal=list()
it_lim_seguridad=10
it=0
while (it0 and resto%26==0:
combinacion_lineal.append(26)
resto-=26
else:
combinacion_lineal.append(resto%26)
resto-=resto%26
resto/=26
resto=int(resto)
it+=1
lista_alfabeto=["","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
for i in combinacion_lineal:
cadena=lista_alfabeto[i]+cadena
# Para invertir una cadena de texto: 'cadena[::-1]'
return cadena
# Test
# mitest_input=[26,27,45,52,53,149,259,389,466,521,582,633,702,703,728,729,1422,3627,10137,10140,10141,16384,17576,18252,18278]
# mitest_output=[num_to_alphabet(i) for i in mitest_input]
# print(mitest_input)
# print(mitest_output)
.
.
.
# Añadir este gráfico dentro de mi archivo de excel
pestana.add_chart(barchart, f"{num_to_alphabet(min_colu+1)}{str(max_fila+6)}")
barchart.title="Ventas"
barchart.style=5
wb.save("sales_2021.xlsx")
Consulta, si hago gráficos en excel con python en mi equipo, ese mismo archivo lo puedo trabajar en otra computadora que no tiene instalado python; modificar registros de la base y actualizar los gráficos?.
Hago esta consulta, porque pretendo trabajar mi archivo excel con python en casa y después abrirlo en la empresa donde trabajo para que otros compañeros también tengan acceso a la información del archivo. El tema es que la empresa no tiene instalado la licencia de Python
Excelente video amigo, una consulta. Existe una forma de poder trabajar una base en Excel y guardarla en una ya existente sin que se borren las demás otras pestañas?
Nunca he probado. No sabría como hacer esto
Sí se puede, aquí un ejemplo:
book = openpyxl.load_workbook('nombre_reporte.xlsx') #Already existing workbook
writer = pd.ExcelWriter('nombre_reporte.xlsx', engine='openpyxl') #Using openpyxl
#Migrating the already existing worksheets to writer
writer.book = book
writer.sheets = {x.title: x for x in book.worksheets}
df1.to_excel(writer, sheet_name='nombre_hoja')
writer.save()
writer.close()
Excelente 🦾
Gracias :)
Gracias hermano 😀
¡De nada!
Estuvo interesante el video, yo recién empiezo a aprender Python, y quisiera saber como hacer para que ese código lo pudiera convertir en un ejecutable y así poderlo instalar en distintas computadoras, es posible?
¡Claro! Revisa este tutorial que hice -> th-cam.com/video/FFE1VNMAZfc/w-d-xo.html
Es sobre una librería para convertir el script en ejecutable (.exe). En el video explico que hay que hacer unas pequeñas modificaciones al código. Por suerte hice un ejemplo con el código que usé en este video (el script original y script con las modificaciones para el exe están en el link de la descripción de este y el otro video)
Hola Frank. Pregunta ¿ El proceso podrìa realizarse de forma masiva, importando tablas en formato pdf a excel?
No sabría decirte. No se como harías para importar tablas pdf a Excel. Además, este vídeo es para solo para automatizar reportes de Excel con openpyxl
Yo no creo que se pueda así nomás 🤔 en su defecto, se me ocurre que primero pudieras "convertir" ese PDF a Excel y ahí sí aplicar la magia de Python o bien s través de macros desde el mismo Excel.
necesito realizar un algoritmo en el cual debo extraer el valor de varias celdas de una hoja para posterior actualizarlos en otra hoja diferente, cree que se pueda utilizar las funciones que utilizan en el video o existe alguna otra librería mejor?
Claro. Solo tendrías que escribir la función que quieres hacer así como hice en el f'=SUM({i}{min_fila+1}:{i}{max_fila})'
En este caso sería la función que referencia valores de una hoja de cálculo hacia otra. Por ejemplo si quieres extraer el dato de la celda A1 de hoja 1 a la hoja 2. Sería algo así f'=Sheet1!A1'
Claro, primero tendrías que cambiar de hoja así como hice en este video (pestaña = wb['hoja2']) Por cierto, mi Excel está en inglés por eso me sale Sheet1!A1, quizas en la versión en español diga Hoja1!A1. Revisa.
Gracias por el video, pero? para que usar phyton, si eso lo puedo hacer en el mismo excel.
Es decir que es lo que hace phyton a diferencia de excel?
Quisiera saber si es posible usar la función INDIRECT usando Python
perdon mi ignorancia y consulta, pero mi duda es en que cambiaria hacerlo en excel mismo que en Phyton? cual seria la diferencia ?
ya que en uno tendrías que hacerlo escribiendo con códigos y en otro no
Muchas gracias por el video. Me gustaría me resolviera una duda, por qué realizar este reporte en python y no directamente en excel? Puede cargar mayor cantidad de datos? Mayor velocidad? Estoy aprendiendo python pero me gustaría me resolviera la duda. Muy amable
Tengo la misma duda. Cuento con conocimiento de Excel y Drive, y lo mismo que se hace con Python lo podes hacer desde la hoja de calculo.
Comparto contigo, yo recién me estoy adentrando a Python y no le veo mucha ganancia por el momento. Es mas, siento que vuelvo a la Prehistoria dada las herramientas que da Excel en la actualidad.
Frank una duda: yo tengo instalado en mi computadora LibreOffice en vez de Excel. Funciona todo esto sin el Excel? En mi caso no funcionó. No abre nada. Solo se ejecuta el programa sin errores ni nada pero tampoco veo nada en la ventana en donde se muestra la salida :| muchas gracias por responder.
Nunca use LibreOffice así que no sabría como ayudarte
Funciona en el Libre Office, yo lo uso. Lo unico es que en la llamada a la funcion tuve que llamar al archivo supermarket, no a sales, sino como hace la tabla pivote? asi a mi me funciono a la perfeccion, sino daba error.
Hola, buen video. Lo he intentado paso a paso, pero me esta dando un error:
Traceback (most recent call last):
File "c:\Users\vidap\OneDrive\Escritorio\UnirExcel\Reporte.py", line 40, in
categorias = Reference(sheetReport, min_col=minCol, max_Col=maxCol, min_row= minFila+1, max_row=maxFila)
TypeError: Reference.__init__() got an unexpected keyword argument 'max_Col'
En el script de Phyton, he notado que no me recnoce los parametros min_col, max_col, in_row_ max_row, como podria hacer para resoverlo?
Hola Frank esta super tu manera de explicar pero yo en particular tengo una duda haber si me podrías ayudar, a partir de una consulta yo genero un Excel que lo muestra con los nombres que tengo en la tabla pero si quiero cambiarle los nombres a las columnas en el Excel y además cambiar el orden de las columnas como se muestran como podría hacer estaría agradecido si me pudieras ayudar
Hola! Me he quedado atascado al principio del vídeo ya que me da este error:
tabla_pivote.to_excel("sales_2021.xlsx", startrow=4, sheet_name="Report")
AttributeError: 'tuple' object has no attribute 'to_excel'
¿Alguna ayuda para continuar?
La variable tabla_pivote tiene que ser un dataframe de lo contrario no va a funcionar el .to_excel()
No entiendo porque tu variable tabla_pivote es una tupla. Si seguiste los pasos del video deberia ser un dataframe 🤔
Hola, en que ruta encuentro el excel del reporte. no lo encuentro
Hola Frank. te hago una consulta, intento instalar pandas en python 3.10 y no me deja usando el comando pip en la consola ni tampoco a través de pycharm. que puedo hacer?
No sabría decirte. Yo tengo Python 3.8. No suelo actualizar con tanta frecuencia para evitar algún error. De todas formas me parece muy raro. El comando pip debería funcionar siempre. Quizás puede intentar crear un nuevo entorno virtual e iniciar desde cero. Hay un vídeo en el canal de cómo hacer eso
Hola que tal. Descargué el archivo supermarket_sales e instalé los paquetes. ni bien intento leerlo me sale el siguiente error: FileNotFoundError: [Errno 2] No such file or directory: 'supermarket_sales.xlsx'
que debo hacer?
El error indica que el archivo no fue encontrado en tu directorio. Mueve el archivo supermarket_sales a la carpeta donde se encuentra tu script de Python.
Avísame si te funcionó.
buen día
en la linea
barchart.add_data(data,titles_from_data=True) el resultado que me genera es:
AttributeError: module 'openpyxl.chart.bar_chart' has no attribute 'add_data'
Que podría ser lo que sucede?
Gracias por su orientación.
Excelente clase
Hola Frank , muchas gracias por el aporte esta genial, TEngo un inconveniente y ese no me deja asociar la columna del excel en el for ...me aparece Key Error cuando le coloco el nombre de la columna :( quizas me puedas ayudar .
¿Para que importar pandas y open...? Si las dos sirven para leer excel...
Estoy más acostumbrado a usar pandas que openpyxl. Además, usé pandas para crear la tabla pivote ... no sabía como hacer eso con openpyxl
35:41 continuar
Gracias por ver casi todo el video 😁
Muy buen video!!
Yo tengo una consulta, como puedo comparar la información de 2 hojas de calculo con Python??
Trabajo para un ferretería y ocupo comparar los precios de las facturas de nuestro local y de los proveedores para verificar que concuerden, generalmente uso "vlookup" (buscarv) pero quiero que solo me arroje la informacion de las facturas cuyos precios no concuerdan en una hoja (pestaña) nueva. En mi libro de Excel, tengo 2 pestañas, una con las facturas de nuestro local y otra pestaña con las facturas de los proveedores.
Saludos!
es full easy, trata de leer la documentacion y o buscar soluciones no tan especificas hablame si queres
Disculpa me sale esto, pero el archivo esta en la misma carpeta
FileNotFoundError: [Errno 2] No such file or directory: 'Mall_Customers.xlsx'
podrías ayudarme por fa
Es súper raro. Sí el Script(.py) y archivo excel (.xlsx) están en la misma carpeta el problema de debería aparecer
Hola porque cuando ejecuto el codigo abro el excel sale la graficas en blanco ?
Hola!!
Como lo hago en windows sabiendo que en el read_excel debo poner una ruta? pues, para automatizar
En Windows o Mac tienes 2 opciones:
1. Coloca el archivo Excel en a ruta donde esta tu script de Python. De este modo, solo necesitas escribir el nombre del archivo dentro de paréntesis y no la ruta completa
2. Haz clic derecho sobre el archivo Excel y selecciona Propiedades. Luego copia la ruta y listo. (Solo Windows)
archivo_excel = pd.read_excel(r'C:\Users\Public\Documents\Python Scripts\supermarket_sales.xlsx')
print(archivo_excel) prueba esta secuencia
cuando hago el print del minuto 4:44 me sale esto:
"ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd."
Entonces hago pip install xlrd , vuelvo a darle a run y ahora el error es este:
" raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
xlrd.biffh.XLRDError: Excel xlsx file; not supported "
No entinedo por qué da ese error, yo esto escribiendo esto:
import pandas as pd
import openpyxl
archivo_excel = pd.read_excel('eventos_de_amenaza_parseado.xlsx')
print(archivo_excel)
y el archivo eventos_de_amenaza_parseado.xlsx es un csv convertido a libro de excel (sin celdas en blanco) y parseado en columnas, con formato xlsx como se ve en el video.
Me parece que tiene que ver con la extensión del archivo. Intenta copiar la data de este archivo 'eventos_de_amenaza_parseado.xlsx' y pegarla en un archivo nuevo. Guárdalo y repite los pasos colocando el nombre de este archivo.
Esto debería solucionarlo.
Pregunta cómo puedo manejar un archivo excel que tiene una macro desde python
Como colocamos el archivo de excel en la misma ruta de Python?
Hay alguna forma de que el archivo se guarde con contraseña (Protegido)?
Claro, pero eso lo puedes hacer sin Python. Si te refieres a como hacerlo con Python, no sabría, pues nunca necesite ponerle contraseña a los archivos
@@thepycoachES Gracias, si me referia a hacerlo con python.
Como puedo bajar los archivos de la automatización? Me marca error
donde tengo que colocar el archivo excel para que me lo lea.
Como se sabe en Python donde acab ese for
no age restriction to make art!
la funcion de automitizar es incorrecta, ademas no corres el codigo simplemente lo dejas ahí, no funciona esa parte, todo lo demas bien
Y que diferencia hay en:
1Seleccionar datos
2Tabla dinámica
🤷
Hi frank, answer me on linkedin pls
¡Hola! Te acabo de contestar en Linkedin
Nada en contra de los programadores. Pero para esa tablita de excel jamás usaría python.
missing my ti line sir.
Excelente!
¡Gracias por tu apoyo!