python - 如何计算列的唯一组合的元素频率并存储在 Dataframe 的另一列中?
问题描述
我有一个包含 3 列的pandas 数据框id1
,其中数据的格式如下id2
call_freq
输入:
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}
推荐阅读
- php - 在 WooCommerce 我的帐户自定义菜单项内容中定义用户变量
- kotlin - 对密封类的抽象中间子类进行不必要/损坏的检查,在详尽时需要
- html - CSS 样式问题:类是一起设计的,但看起来却大不相同
- ios - Swift 5 - 在 JSON 数组的自定义 CollectionviewCell 中设置 TextLabel
- c# - 试图让死亡和重生在我的游戏中工作
- firebase - Firebase CLI 无法识别我的项目
- html - Bootstrap 导航栏折叠不展开以显示菜单的链接
- python - 如何从 Python 中的字节列表中获取最后一个字节项?
- python - 有没有办法计算数据框中仅大于 0 的列中的值的平均值?
- python - Python 将 Excel .xlsx 保存为 CSV/XML 并保存样式信息以便转换回 .xsls