我有一个包含3列的数据集:Category,Country和Count(始终为1-实际上毫无用处)。

我想要实现的是类似于此处的黄色列:



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



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

最佳答案

似乎您想在此处使用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')

关于python - 基于两列对频率进行计数,而无分组依据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58956088/

10-12 17:56