python - 在 python pandas 中打开 json l 后如何跨字段聚合
问题描述
我正在从 json 对象中读取一些数据,然后使用 pandas.to_json() 将其转换为数据框。完成此操作后,我想通过计算特定变量的值数来对结果数据帧执行聚合。这是数据框的数据类型摘要。
df3.types
id object
origin object
dtype: object
当我尝试执行
df3.groupby(['origin']).count()
但这会产生错误
TypeError: unhashable type: 'dict'
我不清楚如何进行。
我已经尝试将 id 和 origin 显式转换为字符串,但这并没有让我有任何收获。在 RI 中,只需将原点转换为因子,而在 SQL 中,这将是一件轻而易举的事。谁能给我一个关于如何进行的建议?
解决方案
错误中指出了解决方案的线索,我只是不明白错误。数据的格式为
id, origin
'someIdentifier', '{'id':'someNonUniqueIdentifer'}'
因此,解决方案是在数据帧内的单个元素字典中提取“id”的值,如下所示
df3['new_origin'] = [x['id'] for x in df3['origin']]
现在命令
df3.groupby(['new_origin']).count() works exactly as required.
感谢大家的帮助。
推荐阅读
- html - 为什么图像显示在 chrome 上但不在 Firefox 中?
- javascript - Webpack 无法解析依赖
- aws-event-bridge - Amazon EventBridge - 如何衡量不匹配的事件?
- nested-for-loop - 有没有办法遍历子列表并返回特定值?
- angular8 - 在角度 8 中选择了不工作的选项
- aws-event-bridge - Eventbridge 不匹配事件
- wordpress - 在 wordpress 仪表板中编辑自定义用户元数据
- javascript - 有没有比这更好的使用 vanilla JavaScript 创建选项卡的方法?
- database - 使用 DBGEN 生成 TPCH 数据集时,是否可以将比例因子设置为手册中未列出的值?
- linq - EF Core 派生的 DbContext 未列出 DbSet