excel / app.py
salomonsky's picture
Update app.py
155e8f6 verified
import streamlit as st
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from base64 import b64encode, b64decode
from datetime import datetime
import os
# Funciones para procesar texto
def procesar_texto(texto):
# Tokenizar texto
tokens = word_tokenize(texto)
# Eliminar stopwords
tokens = [token for token in tokens if token not in stopwords.words('spanish')]
# Vectorizar texto
vectorizer = TfidfVectorizer()
vector = vectorizer.fit_transform(tokens)
return vector
# Funciones para modificar archivos
def modificar_archivo(archivo, cambios):
# Leer archivo
df = pd.read_excel(archivo)
# Aplicar cambios
df = df.apply(cambios)
# Guardar archivo
df.to_excel(archivo, index=False)
# Funciones para reemplazar caracteres
def reemplazar_caracteres(archivo, caracter, reemplazo):
df = pd.read_excel(archivo)
df = df.replace(caracter, reemplazo, regex=True)
df.to_excel(archivo, index=False)
# Funciones para eliminar columnas
def eliminar_columnas(archivo, columnas):
df = pd.read_excel(archivo)
df = df.drop(columnas, axis=1)
df.to_excel(archivo, index=False)
# Funciones para comparar archivos
def comparar_archivos(archivo1, archivo2, columna1, columna2):
df1 = pd.read_excel(archivo1)
df2 = pd.read_excel(archivo2)
df_comparado = pd.merge(df1, df2, on=[columna1, columna2], how='outer', indicator=True)
df_comparado.to_excel('comparacion.xlsx', index=False)
# Funciones para unir hojas
def unir_hojas(archivos, salida):
dfs = []
for archivo in archivos:
df = pd.read_excel(archivo)
dfs.append(df)
df_unido = pd.concat(dfs, ignore_index=True)
df_unido.to_excel(salida, index=False)
# Interfaz de usuario
st.title("App de procesamiento de texto y modificaci贸n de archivos")
# Secci贸n de procesamiento de texto
st.header("Procesamiento de texto")
texto = st.text_area("Ingrese texto para procesar")
if st.button("Procesar texto"):
vector = procesar_texto(texto)
st.write(vector)
# Secci贸n de modificaci贸n de archivos
st.header("Modificaci贸n de archivos")
archivo = st.file_uploader("Seleccione archivo para modificar")
cambios = st.text_area("Ingrese cambios para aplicar")
if st.button("Modificar archivo"):
if archivo and cambios:
modificar_archivo(archivo, cambios)
st.write("Archivo modificado con 茅xito")
# Secci贸n de reemplazar caracteres
st.header("Reemplazar caracteres")
archivo = st.file_uploader("Seleccione archivo para reemplazar caracteres")
caracter = st.text_input("Ingrese caracter a reemplazar")
reemplazo = st.text_input("Ingrese reemplazo")
if st.button("Reemplazar caracteres"):
if archivo and caracter and reemplazo:
reemplazar_caracteres(archivo, caracter, reemplazo)
st.write("Caracteres reemplazados con 茅xito")
# Secci贸n de eliminar columnas
st.header("Eliminar columnas")
archivo = st.file_uploader("Seleccione archivo para eliminar columnas")
columnas = st.text_input("Ingrese columnas a eliminar")
if st.button("Eliminar columnas"):
if archivo and columnas:
eliminar_columnas(archivo, columnas)
st.write("Columnas eliminadas con 茅xito")
# Secci贸n de comparar archivos
st.header("Comparar archivos")
archivo1 = st.file_uploader("Seleccione primer archivo para comparar")
archivo2 = st.file_uploader("Seleccione segundo archivo para comparar")
columna1 = st.text_input("Ingrese columna para comparar en primer archivo")
columna2 = st.text_input("Ingrese columna para comparar en segundo archivo")
if st.button("Comparar archivos"):
if archivo1 and archivo2 and columna1 and columna2:
comparar_archivos(archivo1, archivo2, columna1, columna2)
st.write("Archivos comparados con 茅xito")
# Secci贸n de unir hojas
st.header("Unir hojas")
archivos = st.file_uploader("Seleccione archivos para unir", accept_multiple_files=True)
salida = st.text_input("Ingrese nombre de archivo de salida")
if st.button("Unir hojas"):
if archivos and salida:
unir_hojas(archivos, salida)
st.write("Hojas unidas con 茅xito")
# Secci贸n de muestra
st.header("Muestra")
muestra = st.file_uploader("Seleccione archivo para mostrar")
if st.button("Mostrar muestra"):
if muestra:
df = pd.read_excel(muestra)
st.write(df.head())