Transformar un objeto de contador en un dataframe de Pandas

Usé Counter en una lista para calcular esta variable:

 final = Counter(event_container) 

imprimir final da:

 Counter({'fb_view_listing': 76, 'fb_homescreen': 63, 'rt_view_listing': 50, 'rt_home_start_app': 46, 'fb_view_wishlist': 39, 'fb_view_product': 37, 'fb_search': 29, 'rt_view_product': 23, 'fb_view_cart': 22, 'rt_search': 12, 'rt_view_cart': 12, 'add_to_cart': 2, 'create_campaign': 1, 'fb_connect': 1, 'sale': 1, 'guest_sale': 1, 'remove_from_cart': 1, 'rt_transaction_confirmation': 1, 'login': 1}) 

Ahora quiero convertir final en un DataFrame Pandas, pero cuando lo estoy haciendo:

 final_df = pd.DataFrame(final) 

pero tengo un error

Supongo que final no es un diccionario adecuado, entonces, ¿cómo puedo convertir final en un diccionario? ¿O es otra forma de convertir final a un DataFrame ?

Puede construir usando from_dict y pasar param orient='index' , luego llame a reset_index para obtener un df de 2 columnas:

 In [40]: from collections import Counter d = Counter({'fb_view_listing': 76, 'fb_homescreen': 63, 'rt_view_listing': 50, 'rt_home_start_app': 46, 'fb_view_wishlist': 39, 'fb_view_product': 37, 'fb_search': 29, 'rt_view_product': 23, 'fb_view_cart': 22, 'rt_search': 12, 'rt_view_cart': 12, 'add_to_cart': 2, 'create_campaign': 1, 'fb_connect': 1, 'sale': 1, 'guest_sale': 1, 'remove_from_cart': 1, 'rt_transaction_confirmation': 1, 'login': 1}) df = pd.DataFrame.from_dict(d, orient='index').reset_index() df Out[40]: index 0 0 login 1 1 rt_transaction_confirmation 1 2 fb_view_cart 22 3 fb_connect 1 4 rt_view_product 23 5 fb_search 29 6 sale 1 7 fb_view_listing 76 8 add_to_cart 2 9 rt_view_cart 12 10 fb_homescreen 63 11 fb_view_product 37 12 rt_home_start_app 46 13 fb_view_wishlist 39 14 create_campaign 1 15 rt_search 12 16 guest_sale 1 17 remove_from_cart 1 18 rt_view_listing 50 

Puede cambiar el nombre de las columnas a algo más significativo:

 In [43]: df = df.rename(columns={'index':'event', 0:'count'}) df Out[43]: event count 0 login 1 1 rt_transaction_confirmation 1 2 fb_view_cart 22 3 fb_connect 1 4 rt_view_product 23 5 fb_search 29 6 sale 1 7 fb_view_listing 76 8 add_to_cart 2 9 rt_view_cart 12 10 fb_homescreen 63 11 fb_view_product 37 12 rt_home_start_app 46 13 fb_view_wishlist 39 14 create_campaign 1 15 rt_search 12 16 guest_sale 1 17 remove_from_cart 1 18 rt_view_listing 50 

Si desea dos columnas, configure el argumento de la palabra clave orient='index' al crear un DataFrame desde un diccionario usando from_dict :

 final_df = pd.DataFrame.from_dict(final, orient='index') 

Consulte la documentación en DataFrame.from_dict