Skip to main content
 首页 » 编程设计

python之如何计算列的唯一组合的元素频率并存储在 Dataframe 的另一列中

2025年05月04日14mengfanrong

我有一个包含 3 列 id1、id2、call_freq 的 pandas 数据框,其中数据为以下形式

输入:

id1 id2 call_frequency 
1   1   2 
1   1   3 
1   1   3 
1   1   3 
1   1   3 
1   2   5 
1   2   5 
1   2   4 
2   1   9 
2   2   6 
2   2   6 
2   2   7 
2   2   7 
2   2   7 
2   2   7 

输出:

call_frequency_dict 列应包含带有元素的字典字符串 在 call_frequency 中,id1 和 id2 的组合及其频率作为值。

我尝试搜索但没有找到任何帮助。我怎样才能得到call_frequency_dict?

请您参考如下方法:

我建议使用 value_counts 而不是将这些类型的数据推送到 dict

df.groupby(['id1','id2']).call_frequency.value_counts() 

匹配你的输出

import collections  
df.groupby(['id1','id2']).call_frequency.agg(collections.Counter).reset_index() 
Out[55]:  
   id1  id2 call_frequency 
0    1    1   {2: 1, 3: 4} 
1    1    2   {5: 2, 4: 1} 
2    2    1         {9: 1} 
3    2    2   {6: 2, 7: 4}