基于两列对频率进行计数,而无分组依据

时间:2019-11-20 13:59:06

标签: python pandas

我有一个包含3列的数据集:“类别”,“国家/地区”和“计数”(始终为1-实际上是毫无用处的。)

我要实现的功能类似于此处的黄色列:

img 1: how I want and what I want

我可以在python中进行简单的分组,但这不是我想要的,因为我想保留数据的各个行,与下面的图像不同(将它们分组):

what I did and I don't want (group by)

我只是想根据两列来获得频率,而没有将其分组,有什么想法吗?我曾考虑过使用for循环进行迭代,但是我做不到,因为我是python的初学者,所以深切感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

似乎您要在此处使用transform。这样会在您的数据框中创建一个新列,其中包含您要查找的分组摘要统计信息。

import pandas as pd
df = pd.DataFrame({'category_cluster' : ['Assault', 'Assault', 'Assault', 'Assault', 'Assault', 'Assault', 'Assault'],
                   'Country': ['Egypt', 'India', 'India', 'Mexico', 'Mexico', 'Mexico', 'Morocco'],
                   'Count' : [1, 1, 1, 1, 1, 1, 1]})

df['new_column'] = df.groupby(['category_cluster', 'Country'])['Count'].transform('sum')