如何在熊猫的聚合函数中创建查找列的频率

时间:2018-11-15 15:41:33

标签: pandas pandas-groupby

我有一个数据框,我想按两列进行分组,然后创建一个字典,该字典将值及其频率作为聚合函数。这就是我的数据看起来不错

A, B, C
-------
1, 2, V
1, 2, V
1, 2, B
1, 3, V
1, 3, B
1, 3, B

我想对AB进行分组,并创建一个字典,显示第C列的频率。这就是我的最终数据帧的外观:

A, B, C
-------
1, 2, {V:2, B:1}
1, 3, {V:1, B:2}

我该怎么做?

1 个答案:

答案 0 :(得分:2)

使用groupby + value_counts + to_dict

df=df.groupby(['A','B']).C.apply(lambda x : [x.value_counts().to_dict()]).str[0].reset_index()
df
Out[73]: 
   A  B                 C
0  1  2  {'V': 2, 'B': 1}
1  1  3  {'B': 2, 'V': 1}

df.C.str.len()
Out[75]: 
0    2
1    2
Name: C, dtype: int64