work with tutorial new functions example empty define data create python pandas dataframe counter

with - python pandas dataframe tutorial



Transformar un objeto Counter en un Data Frame de Pandas (2)

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

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 a un diccionario? ¿O es otra forma de convertir final a un DataFrame ?


Si desea dos columnas, establezca el argumento de la palabra clave orient=''index'' cuando cree 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