我有一个数据框:
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'])
但这并没有按照需要的方式对其进行分组。
请帮忙。
最佳答案
我想你想对“类型”和“名称”进行分组:
print df.groupby(['Type','Name']).size()
Type Name
Bird Flappy Bird 1
Pigeon 2
Pokemon Jerry 3
Mudkip 2
或者如果将列命名为“频率”很重要,您可以执行如下操作:
print df.groupby(['Type','Name'])['Type'].agg({'Frequency':'count'})
Frequency
Type Name
Bird Flappy Bird 1
Pigeon 2
Pokemon Jerry 3
Mudkip 2
关于python - 分组和计算频率,Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23402150/