crear diccionarios de combinación de columnas de una trama de datos de pandas

robinhoodjr:

Si tengo 100 columnas de una trama de datos y quiero crear diccionarios de par de columnas, la clave sería siempre una columnas fijas. ¿Cómo puede hacerse esto?

Digamos que tenemos una trama de datos de esta manera:

k    v1    v2    ...    v99
============================
i    1     2     ...    9
ii   11    22    ...    99
iii  111   222   ...    999
...

Me gustaría que los diccionarios dict_v1, dict_v2... dict_v99. Por ejemplo dict_v2sería:

{'i': 2, 'ii': 22, 'iii': 222, ...}
Jezreel:

Sugiero crear el diccionario de diccionarios como:

d = df.set_index('k').to_dict()
print (d)
{'v1': {'i': 1, 'ii': 11, 'iii': 111}, 
 'v2': {'i': 2, 'ii': 22, 'iii': 222}, 
 'v99': {'i': 9, 'ii': 99, 'iii': 999}}

A continuación, cada dict es posible seleccione con la tecla:

print (d['v2'])
{'i': 2, 'ii': 22, 'iii': 222}

Otra idea debe ser:

df1 = df.set_index('k')
print (df1)
      v1   v2  v99
k                 
i      1    2    9
ii    11   22   99
iii  111  222  999

print (df1['v2'].to_dict())
{'i': 2, 'ii': 22, 'iii': 222}

Lo que necesita es posible, pero es mala idea añadir nombres dinámicamente a un espacio de nombres de Python. :

for k, v in df.set_index('k').to_dict().items():
    globals()[f'dict_{k}'] =  v

print (dict_v2)
{'i': 2, 'ii': 22, 'iii': 222}

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=387620&siteId=1
Recomendado
Clasificación