首页 > 解决方案 > 计算数据框中第二列的每列的值

问题描述

我有这个数据框:

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 方法:

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])

我怎样才能用熊猫countgroupby方法做到这一点?

标签: pythonpandas

解决方案


groupbyclasses列上使用并aggregate作为列表,然后to_dict

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

输出:

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

推荐阅读