Python - asignacion dinámica de nombre a nuevo dataframe

 
Vista:
sin imagen de perfil
Val: 7
Ha disminuido su posición en 16 puestos en Python (en relación al último mes)
Gráfica de Python

asignacion dinámica de nombre a nuevo dataframe

Publicado por Josu (3 intervenciones) el 11/06/2019 14:20:50
Me gustaria conocer si es posible asignar un nombre a un dataframe cuando este nombre es una variable.

En funcion se una serie de archivos .xlsx seleccionados en un listbox, asignar a cada una de las cargas de datos provinientes de esos archivos un nombre que es una variable

archivo1.xlsx
archivo2.xlsx
archivo3.xlsx
.....

data1= pd.read_excel(archivo3.xlsx)
data2= pd.read_excel(archivoZ.xlsx)
data3= pd.read_excel(archivoW4.xlsx)

Siendo data 1, data2, data3 , valores generados mediante la funcion siguiente

1
2
3
4
5
6
7
8
9
10
def crear_variables(numero, cadena='data', lista_valores=None, inicio=1 ):
    fin = inicio + numero
    for i, j in enumerate(range(inicio, fin)):
        if lista_valores:
            valor = lista_valores[i]
            #print(lista_valores[i])
            #lista_dataframes.append(lista_valores[i])
        else:
            valor = None
        g[cadena+str(j)] = valor


Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

asignacion dinámica de nombre a nuevo dataframe

Publicado por Daniel (109 intervenciones) el 11/06/2019 18:43:45
Hola,

Poder, se puede, pero no es una buena práctica. Hay muchas opciones mejores, por ejemplo, guardar los valores en un diccionario.

Si aún lo quieres hacer de esa forma, simplemente tienes que escribir

1
globals()['name'] = pd.read_excel('archivo.xlsx')

donde 'name' es el nombre de la variable.

Saludos,
Daniel Rodríguez.
Analytics Lane
Python en Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 7
Ha disminuido su posición en 16 puestos en Python (en relación al último mes)
Gráfica de Python

asignacion dinámica de nombre a nuevo dataframe

Publicado por Josu (3 intervenciones) el 12/06/2019 13:43:52
Daniel,

Funciona perfecto. muchas gracias.
Si quiero preguntarte, si me lo permites, el motivo por el que indicas que No es un buena práctica.

Para mi el problema consistia en poder utilizar una variable cuyo nombre se crea de forma dinámica y asignarla como nombre ( A) del dataframe que se carga desde un excel (B) . A=B

Yo entendia que el problema venia de que la variable creada estuviera en el lado de la A, o al menos de la sintáxis que estaba usando en diferentes formas y que no conseguia fuera válida.

Por lo demás, si lo obtenido es tener un dataframe accesible mediante el nombre correspondiente (el creado dinámicamente), cualquiera de llas formas me seria igual de útil.

Muchas gracias .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

asignacion dinámica de nombre a nuevo dataframe

Publicado por Daniel (109 intervenciones) el 12/06/2019 19:36:06
Hola Josu,

El problema de asignar variables de forma dinámica es posteriormente no es fácil saber qué variables hay. Además, es posible que una variable con nombres validos no sea del tipo correspondiente.

Si se guarda en una estructura como un diccionario es muy fácil saber qué elementos se han creado y cuales no. Un diccionario, al ser un par clave valor, evita este tipo de problemas. Por ejemplo, en tu caso podrías utilizar el nombre del archivo como clave en un diccionario.

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 7
Ha disminuido su posición en 16 puestos en Python (en relación al último mes)
Gráfica de Python

asignacion dinámica de nombre a nuevo dataframe

Publicado por Josu (3 intervenciones) el 13/06/2019 11:39:36
Muchas gracias de nuevo.

Pensaba que el problema podia venir por otro lado, pero si se trata de llevar el control de las variables, en mi caso yo las guardo en una lista para tenerlas controladas.

Estaba valorando lo del diccionario para asociar el nombre de la variable con el del archivo del que provenga la carga de datos del dataframe,
precisamente por mantener un control del origen de cada dataframe.

Gracias de nuevo.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar