una filas columns columna agregar python pandas typeerror dataframe

filas - pandas python



Pandas: crea columnas con nombre en DataFrame desde dict (5)

Esto es con respecto a TypeError que enfrentó. De acuerdo con la documentación de Pandas, from_dict tomará la palabra clave "columnas" solo si orient = "index".

Tengo un objeto de diccionario de la forma:

my_dict = {id1: val1, id2: val2, id3: val3, ...}

Quiero crear esto en un DataFrame donde quiero nombrar las 2 columnas ''business_id'' y ''business_code''.

Lo intenté:

business_df = DataFrame.from_dict(my_dict,orient=''index'',columns=[''business_id'',''business_code''])

Pero dice que from_dict no toma un argumento de columnas.

TypeError: from_dict () obtuvo un argumento de palabra clave inesperado ''columnas''


Hacer esto:

crear el marco de datos

df = pd.DataFrame(data_as_2d_ndarray)

cree una lista ordenada de nombres de columnas del diccionario; ajuste la clave karg según la necesidad de tomar el valor de clasificación de su dictamen; obviamente, el diccionario debe tener formas consistentes

col_names = sorted(list(col_dict.iteritems()),key=lambda x:x[0])

remodelar y establecer los nombres de columna

df.columns = zip(*col_names)[1]


Para obtener la misma funcionalidad que la documentación y evitar el uso de soluciones temporales de código, asegúrese de utilizar la versión más reciente de Pandas. Recientemente encontré el mismo error al ejecutar una línea de código del tutorial de Pandas:

pd.DataFrame.from_dict(dict([(''A'', [1, 2, 3]), (''B'', [4, 5, 6])]),orient=''index'', columns=[''one'', ''two'', ''three''])

Revisé la versión de Pandas y descubrí que estaba ejecutando la versión 22, cuando la versión 23 está disponible.

import pandas as pd pd.__version__ Out[600]: ''0.22.0''

Actualicé usando pip:

c:/pip install --upgrade pandas

Confirmé mi versión actualizada a 23, y el mismo código from_dict () funcionó sin errores. No se requieren modificaciones de código.


Puedes iterar a través de los elementos:

In [11]: pd.DataFrame(list(my_dict.iteritems()), columns=[''business_id'',''business_code'']) Out[11]: business_id business_code 0 id2 val2 1 id3 val3 2 id1 val1


pandas.pydata.org/pandas-docs/stable/generated/… , puede especificar un parámetro de columns en from_dict :

my_dict = {id1: val1, id2: val2, id3: val3, ...} df = pd.DataFrame.from_dict(my_dict, orient=''index'', columns=[''business_id'', ''business_code''])

Nota: También respondí en especie sobre esta pregunta similar .