python-3.x - 在另一个字典中嵌套一个计数器,其中键是数据框列
问题描述
我有一个 Pandas 数据框,格式如下:
ID Code
E1023 a
E1023 b
E1023 b
E1023 b
E1024 b
E1024 c
E1024 c
我想创建一个以 ID 列作为键的字典,其中包含来自 Code 列的值及其嵌套在其中的特定 ID 的计数,例如:
{'E1023' : {'a' : 1, 'b' : 3 } , {'E1024' : {'b' : 1, 'c' : 2}}}
我知道我可以在 Code 列上使用 Counter ,但我该如何做到这一点,使其按 ID 分组,然后嵌套在 ID 为键的字典中?
解决方案
使用字典理解 withDataFrame.groupby
和Series.value_counts
with Series.to_dict
:
d = {k: v.value_counts().to_dict() for k, v in df.groupby('ID')['Code']}
print (d)
{'E1023': {'b': 3, 'a': 1}, 'E1024': {'c': 2, 'b': 1}}
或使用Counter
然后转换为dict
:
from collections import Counter
d = {k: dict(Counter(v)) for k, v in df.groupby('ID')['Code']}
推荐阅读
- cypress - 如何解决页面加载但未显示的问题?
- javascript - 当我使用cordova SQLite时,我得到“新事务已排队,等待打开操作完成”
- xcode - 公证包含应用程序和 plist 文件的 DMG
- php - 使用日期范围时如何存储开始时间和结束时间?
- flutter - Flutter Bloc - 按钮未触发状态更改
- javascript - 无法在 Node.js 中使用 MAP 数据结构
- google-cloud-platform - Bigtable IO 连接器是否有 Apache Beam DynamicDestinations?
- c# - 从数据库中获取 bytes[] 图像作为 IFormFile
- maven - 当与 Cucumber 一起使用时,Jacoco 分析了具有 0 个类的 bundle '...'
- visual-studio-code - 如何将 Git 1.8 升级到 >=2