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