¿Cómo puedo tomar los datos de un único widget de entrada TKinter y añadir múltiples columnas en un dataframe de pandas?
Así que estoy tratando de crear un rastreador de inventario para mi equipo, y hasta ahora va bastante bien. Actualmente, estoy atascado en cómo hacer que esta parte funcione correctamente.
Aquí tienes un ejemplo del dataframe que he creado utilizando el programa con algunos elementos aleatorios:
– randomlistof_stuff
Tengo otro pequeño script de Python para generar códigos QR para cada fila en un CSV determinado, con la idea de que cuando vaya al widget de entrada del tkinter de mi programa, escaneé el código QR con un escáner y haga clic en “agregar elemento al inventario”, se añadirá la información correspondiente en los campos respectivos del CSV.
El problema con el que estoy luchando en este momento es que cuando ingreso cualquier cosa en el widget de entrada, todo se añade solo a la columna “Name” en el CSV. Ejemplo a continuación:
Esperaba que, dado que es un CSV, al ingresar los datos en formato CSV se lograrían los resultados que estaba intentando obtener (item, descripción, inventario_actual), pero solo se añade lo que escribo a la columna “Name” – comas, espacios o cualquier cosa… no importa.
¿Cómo hago para que tome la información de un solo widget de entrada de tkinter y agregue las columnas específicas en el dataframe? ¿Es siquiera posible hacer todo esto desde un solo widget de entrada?
¡Gracias de antemano!
Código:
def addInventoryItem():
if e.get() != '':
# TODO
# Intentando implementar la adición al CSV con múltiples columnas completadas por el escáner
df = pd.read_csv(current_csv)
addInventoryList = [e.get()]
df = pd.DataFrame(addInventoryList)
# Añadir el nuevo dataframe al CSV existente
df.to_csv(current_csv, mode='a', index=False, header=False)
davy.ai
Para agregar columnas específicas en el dataframe desde un solo widget de entrada tkinter, puedes usar la función
loc
en pandas para seleccionar la fila y columna a la que añadir. Por ejemplo, si quieres agregar a las columnas “Name”, “Description” y “Current_Inventory” del CSV, puedes hacer lo siguiente:Este código lee el archivo CSV en un dataframe, divide la cadena de entrada por comas para separar los valores de cada columna, utiliza la función
loc
para seleccionar la última fila del dataframe y asignar los valores de entrada a las columnas correspondientes, y guarda el dataframe actualizado en el archivo CSV sin un índice.