分组和计算频率,Pandas

2024-05-14 14:11:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框:

df = pd.DataFrame({'Type' : ['Pokemon', 'Pokemon', 'Bird', 'Pokemon', 'Bird', 'Pokemon', 'Pokemon', 'Bird'],'Name' : ['Jerry', 'Jerry', 'Flappy Bird', 'Mudkip','Pigeon', 'Mudkip', 'Jerry', 'Pigeon']})

我需要将观察结果按其类型分组,即所有口袋妖怪类型及其各自的名称。我需要添加另一个列,它具有类型中名称出现的频率。它应该看起来像:

Type         Name     Frequency   
Pokemon      Jerry        3 
             Mudkip       2    

Bird         Pigeon       2  
           Flappy Bird    1  

我用过:

data2 = df.groupby(['Type']) 

但这并没有按需要进行分组。
请帮忙。


Tags: 数据name名称类型dataframedftypepd
1条回答
网友
1楼 · 发布于 2024-05-14 14:11:40

我想你想在“类型”和“名称”上都分组:

print df.groupby(['Type','Name']).size()

Type     Name       
Bird     Flappy Bird    1
         Pigeon         2
Pokemon  Jerry          3
         Mudkip         2

或者,如果必须将列命名为“Frequency”,则可以执行以下操作:

print df.groupby(['Type','Name'])['Type'].agg({'Frequency':'count'})

                     Frequency
Type    Name                  
Bird    Flappy Bird          1
        Pigeon               2
Pokemon Jerry                3
        Mudkip               2

相关问题 更多 >

    热门问题