Pandas Multiindex from array => TypeError: tipo unsashable: ‘dict’

Estoy tratando de crear el dataframe desde la matriz con la siguiente estructura:

df = [[{'date_time': Timestamp('2015-05-22 05:37:59'), 'name': 'Tom', 'value': '129'}, {'date_time': Timestamp('2015-05-22 05:37:59'), 'name': 'Kate', 'value': '0'}, {'date_time': Timestamp('2015-05-22 05:37:59'), 'name': 'GroupeId', 'value': '0'}, {...}, {...}, {...}],[another list of dictionaries like the first one],[and another one]] 

usando este código:

 def create_from_arr(): baby_array=pd.MultiIndex.from_tuples(df, names=['sessions', 'behaves']) return baby_array 

Tengo el siguiente error, que no pude entender:

 TypeError: unhashable type: 'dict' 

Mi salida deseada es como:

 list date_time name value 1 0 2015-05-22 05:37:59 Tom 129 1 2015-05-22 05:37:59 Kate 0 2 2015-05-22 05:37:59 GroupeId 0 2 3 2015-05-26 05:56:59 Hence 129 4 2015-05-26 05:56:59 Kate 0 5 2015-05-26 05:56:59 Julie 0 3 ...................... ...... ...... 

Todavía no estoy seguro de qué es exactamente lo que quieres hacer con el MultiIndex, pero aquí hay una manera de “aplanar” tu diccionario en tus matrices de múltiples niveles y cargar tus datos en el dataframe correctamente:

Actualizado con “list” e “index” como MultiIndex

 In [100]: data = [[{'date_time': Timestamp('2015-05-22 05:37:59'), .....: 'name': 'Tom', .....: 'value': '129'}, .....: {'date_time': Timestamp('2015-05-22 05:37:59'), .....: 'name': 'Kate', .....: 'value': '0'}, .....: {'date_time': Timestamp('2015-05-22 05:37:59'), .....: 'name': 'GroupeId', .....: 'value': '0'}], [{'date_time': Timestamp('2015-05-22 05:37:59'), .....: 'name': 'Tom', .....: 'value': '129'}, .....: {'date_time': Timestamp('2015-05-22 05:37:59'), .....: 'name': 'Kate', .....: 'value': '0'}, .....: {'date_time': Timestamp('2015-05-22 05:37:59'), .....: 'name': 'GroupeId', .....: 'value': '0'}]] In [101]: df = pd.DataFrame(columns=['list', 'date_time', 'name', 'value']) In [102]: for idx, each in enumerate(data, 1): .....: temp = pd.DataFrame(each) .....: temp['list'] = idx # manually assign "list" index .....: df = df.append(temp, ignore_index=True) .....: In [103]: df = df.reset_index() In [104]: df.set_index(['list', 'index']) Out[104]: date_time name value list index 1 0 2015-05-22 05:37:59 Tom 129 1 2015-05-22 05:37:59 Kate 0 2 2015-05-22 05:37:59 GroupeId 0 2 3 2015-05-22 05:37:59 Tom 129 4 2015-05-22 05:37:59 Kate 0 5 2015-05-22 05:37:59 GroupeId 0 

IIUC, sea d un extracto de tu matriz:

 d = [[{'date_time': '2015-05-22 05:37:59', 'name': 'Tom', 'value': '129'}, {'date_time': '2015-05-22 05:37:59', 'name': 'Kate', 'value': '0'}]] 

Me gustaría extraer el dataframe con:

 df = pd.DataFrame.from_dict(d[0]) 

que devuelve:

  date_time name value 0 2015-05-22 05:37:59 Tom 129 1 2015-05-22 05:37:59 Kate 0 

Espero que ayude.