在数据框中,按第二列的值计算第一列的值的数量

4

我有这个数据框:

dummy_dataset = {'sentences': ['a','b','c','d','e','f'], 'classes': [1,2,1,3,3,2] }
dataframe = pd.DataFrame(dummy_dataset)

sentences   classes
0   a   1
1   b   2
2   c   1
3   d   3
4   e   3
5   f   2

我需要的是:

output = { 1 : ['a','c'], 2 : ['b','f'], 3: ['d','e'] }

我尝试了使用字典方法:
dict_count = {}

for m in range(len(dfg)):
    if dfg['classes'].iloc[m] not in dict_count:
        dict_count[dfg['classes'].iloc[m]] = [dfg['sentences'].iloc[m]]
    else:
        dict_count[dfg['classes'].iloc[m]].append(dfg['sentences'].iloc[m])

我该如何使用pandas中的countgroupby方法来实现这个功能?
1个回答

4

classes列上使用groupby,并将aggregate设置为列表,然后执行to_dict

dataframe.groupby('classes')['sentences'].agg(list).to_dict()

输出:

{1: ['a', 'c'], 2: ['b', 'f'], 3: ['d', 'e']}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接