pandas groupby 到嵌套 json

2023-12-04

我经常使用 pandas groupby 来生成堆叠表。但后来我经常想将生成的嵌套关系输出到 json。有什么方法可以从它生成的堆叠表中提取嵌套的 json 文件吗?

假设我有一个像这样的 df:

year office candidate  amount
2010 mayor  joe smith  100.00
2010 mayor  jay gould   12.00
2010 govnr  pati mara  500.00
2010 govnr  jess rapp   50.00
2010 govnr  jess rapp   30.00

我可以:

grouped = df.groupby('year', 'office', 'candidate').sum()

print grouped
                       amount
year office candidate 
2010 mayor  joe smith   100
            jay gould    12
     govnr  pati mara   500
            jess rapp    80

美丽的!当然,我真正想做的是通过沿着 grouped.to_json 的命令获取嵌套的 json。但该功能不可用。有什么解决方法吗?

所以,我真正想要的是这样的:

{"2010": {"mayor": [
                    {"joe smith": 100},
                    {"jay gould": 12}
                   ]
         }, 
          {"govnr": [
                     {"pati mara":500}, 
                     {"jess rapp": 80}
                    ]
          }
}

Don


我认为 pandas 没有内置任何东西来创建数据的嵌套字典。下面是一些通常适用于具有 MultiIndex 的系列的代码,使用defaultdict

嵌套代码迭代 MultIndex 的每个级别,向字典添加层,直到最深的层分配给 Series 值。

In  [99]: from collections import defaultdict

In [100]: results = defaultdict(lambda: defaultdict(dict))

In [101]: for index, value in grouped.itertuples():
     ...:     for i, key in enumerate(index):
     ...:         if i == 0:
     ...:             nested = results[key]
     ...:         elif i == len(index) - 1:
     ...:             nested[key] = value
     ...:         else:
     ...:             nested = nested[key]

In [102]: results
Out[102]: defaultdict(<function <lambda> at 0x7ff17c76d1b8>, {2010: defaultdict(<type 'dict'>, {'govnr': {'pati mara': 500.0, 'jess rapp': 80.0}, 'mayor': {'joe smith': 100.0, 'jay gould': 12.0}})})

In [106]: print json.dumps(results, indent=4)
{
    "2010": {
        "govnr": {
            "pati mara": 500.0, 
            "jess rapp": 80.0
        }, 
        "mayor": {
            "joe smith": 100.0, 
            "jay gould": 12.0
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas groupby 到嵌套 json 的相关文章

  • Python grpc protobuf 存根生成问题:--grpc_out: protoc-gen-grpc: 插件失败,状态代码 1

    正如问题所说 我从源代码编译了 grpc 并且也做了sudo pip install grpcio 但是 那which grpc python plugin不返回任何内容 这是一个问题 因为route guide的grpc python示例
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • 如何使用 HTTP 标头发送非英语 unicode 字符串?

    我是 HTTP 相关问题的新手 我的问题是在 iOS 开发中 我想使用 HTTP 标头发送一个字符串 所以我使用 httpRequest setValue nonEnglishString forHTTPHeaderField custom
  • JSON 语法:传输数组

    A validJSON 语法是这样的 username admin password 123 但是如果我想传输一组 用户 给出的例子 而不是单个 用户 根据规范 下面的代码是有效的 JSON 吗 username admin passwor
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • 如何在Python中求和

    我想知道如何在 python 中表示总和而不需要像这样的循环here http docs scipy org doc scipy reference tutorial optimize html 我们有 def rosen x The Ro
  • 如何使用 xlrd 将新列和行添加到 .xls 文件

    如何向 xlrd 中的工作表添加新列和 或行 我有一个使用 open workbook 读取的 xls 文件 我需要在第一张表中添加一个新列 bouncebacks 然后在该表中添加新行 但我在 xlrd 文档中找不到任何显示如何添加新行和
  • 是否有更矢量化的方法来沿轴执行 numpy.outer ?

    gt gt gt x np array a0 a1 b0 b1 gt gt gt y np array x0 x1 y0 y1 gt gt gt iterable np outer x i y i for i in xrange x sha
  • python:是否有用于对输入流进行分块的库函数?

    我想对输入流进行分块以进行批处理 给定一个输入列表或生成器 x in 1 2 3 4 5 6 我想要一个能够返回该输入块的函数 说 如果chunk size 4 then x chunked 1 2 3 4 5 6 这是我一遍又一遍地做的事
  • 将压缩的json数据存储在本地存储中

    我想将 JSON 数据存储在本地存储中 有时存储的数据可能超过 5MB 每个域的浏览器允许的最大阈值 无论如何 我可以压缩或压缩数据并将其存储在本地存储中吗 如果对大数据进行每个 JS 函数的压缩和解压 会增加多少延迟 我正在使用这个 js
  • PyCharm 无法识别字典值类型

    我有一个简单的代码片段 其中我将字典值设置为空列表 new dict for i in range 1 13 new dict i 现在 如果在下一行的循环内我会输入new dict i 并添加一个点 我希望 PyCharm 向我显示可用于
  • 如何在 Pytorch 中将一维 IntTensor 转换为 int

    如何将一维 IntTensor 转换为整数 这 IntTensor int 给出错误 KeyError Variable containing 423 torch IntTensor of size 1 我所知道的最简单 最干净的方法 In
  • 检查多个 pd.DataFrame 是否相等

    是否有一种 Pythonic 方式 无循环或递归 来检查是否超过两个pd DataFrames 例如 pd DataFrames 列表 彼此相等吗 就像是 all x equals dfs 0 for x in dfs with dfs数据
  • Qcut Pandas:ValueError:Bin 边缘必须是唯一的

    我使用 Pandas 中的 Qcut 将数据离散化为大小相等的存储桶 我想要有价格桶 这是我的数据框 productId sell prix categ popularity 11997 16758760 0 28 75 50 524137
  • 当价格低于阈值时使用 pandas DataFrame 实施矢量化止损

    给出这个示例数据框 date close signal positions 2017 01 02 27 90 0 0 0 0 2017 01 03 27 76 0 0 0 0 2017 01 04 28 65 1 0 1 0 2017 01
  • 如何保持 python 3 脚本 (Bot) 运行

    不是母语英语 抱歉 英语可能很蹩脚 我也是编程新手 您好 我正在尝试使用 QueryServer 连接到 TeamSpeak 服务器来创建机器人 经过几天的努力 它有效 只有 1 个问题 而我却被这个问题困扰了 如果您需要检查 这是我正在使
  • JSON.NET 使用 JObject、JToken 和 JArray 进行解析

    我有一个 json 字符串 我试图用 JSON net 解析它 我想循环并使用komponent大批 这是我的 json 字符串 Name Service jsonTEMPLATE komponent name aa name bb 这是我
  • 只返回 $.ajax 传递的 JSON 数据的前 20 个结果?

    我有以下简单的 jquery 片段 document ready function ajax url myjson json dataType json success function json each json function al
  • PHP 中的嵌套 JSON 输出

    我正在为 iOS 应用程序构建 API 并尝试将 mySQL 数据转换为 JSON 字符串进行处理 所需的输出将需要顶级订单详细信息 例如客户名称和地址 然后是订购的产品子数组 我需要的两个表中有相当多的字段 我希望拥有所有字段 我已经构建
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException

随机推荐

  • WinForm 应用程序 UI 在长时间运行的操作期间挂起

    我有一个 Windows 窗体应用程序 我需要使用一个 for 循环 其中有大量远程调用 大约 2000 3000 个调用 在执行 for 循环时 我失去了对表单和表单控件的控制 因为它变成了一个大进程 有时它显示 未响应 但如果我等待很长
  • C语言中如何使用void指针?

    以下是我无法理解如何完成的几个函数声明 我扫描了网络以了解 void 指针是什么 并且我知道它必须转换为有用的东西 因为它只指向某个内存块 但我不知道这如何帮助完成这些声明 type of comparison function that
  • Java SAXParser 解析无效的 xml [重复]

    这个问题在这里已经有答案了 我正在尝试解析一些无效的 xml 因为属性没有用引号引起来 有什么方法可以解决这个问题吗 下面是一个简单的例子 以及java代码 XML
  • 将所有标准输入读取到 Java 字节数组中

    现代Java 仅使用标准库 最简单的阅读方式是什么all of标准输入直到 EOF 转换为字节数组 最好不必自己提供该数组 标准输入数据是二进制数据 不是来自文件 IE 像鲁比的东西 foo stdin read 我能想到的唯一的部分解决方
  • 是否可以自动选择正确的客户端证书?

    我已经使用 SSL 客户端证书配置了 Apache httpd 网站 以便只有在 Web 浏览器中安装了正确证书的用户才能访问该网站 如果仅安装了一个客户端证书 Web 浏览器将自动选择它 这不是默认设置 但可以在设置对话框中的某处进行配置
  • Invoke-WebRequest,带参数的 POST

    我正在尝试 POST 到 uri 并发送参数username me Invoke WebRequest Uri http example com foobar Method POST 如何使用 POST 方法传递参数 将参数放入哈希表中并像
  • 使用C#获取SMTP服务器证书

    如何使用 C 连接到支持 STARTTLS 的 SMTP 服务器并获取其 SSL 证书 我知道可以使用 openssl 来完成类似的事情 openssl s client starttls smtp crlf connect 192 168
  • 在 Java 中检查结果集的有效方法

    我正在运行一个 select 命令 该命令返回 1 000 000 行 迭代 ResultSet 下面的代码需要 5 分钟才能执行 有没有更快的方法来迭代 ResultSet conn getDbConnection Statement c
  • 为什么 JavaScript 设置超时不起作用? [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我正在尝试使用 setTimeout 但它不起作用 任何帮助表示赞赏 有人知道怎么修这个东西吗 var button document getElementById reactionTes
  • 我可以使用

    在文章之后 我有与文章相关的标签列表 将这些标签的列表包装在语义上是否正确
  • 关于View Controller的视图问题

    当我们访问视图控制器的视图属性时 它总是代表整个屏幕还是可以是部分屏幕 间接地说 一个视图控制器可以有多个视图属性吗 donkim 是对的 但不要相信我的话 请参阅 Rincewind 的这篇文章 https devforums apple
  • 有没有办法在运行 64 位的 IE10 中默认设置 Quirks 模式

    我想知道是否有办法让我的 IE10 浏览器在打开时自动设置为 Quirks 模式 我使用的是 Windows 8 64 位 我正在访问一个需要处于怪异模式的网站 当我打开浏览器时 我仍然需要将其更改为怪异模式才能正确访问该网站 当我重新启动
  • 如何在 Android 中截取视频的屏幕截图

    我正在播放一个视频 在某些时候 我需要暂停视频 进行捕获 然后在绘画活动中使用该图像来修改它 问题是 如果我尝试保存视频 图片将是黑色的 尝试过setDrawingCacheEnabled true 可以对视频进行截图吗 你有没有尝试过Th
  • 我怎样才能选择一个html元素,无论它在selenium中的哪个框架中?

    我正在尝试选择一个驻留在 iframe 内并且可能驻留在其他 iframe 中的元素 是否可以在 python selenium 中的某些 子 iframe 中选择一个元素 而无需先选择 iframe 有没有办法以某种方式 循环 每个 if
  • 如何更改Python循环中的for循环迭代器变量?

    我想知道是否可以在 for 循环中更改迭代器的值 例如 我想编写一个程序来通过以下方式计算数字的素因数 def primeFactors number for i in range 2 number 1 if number i 0 prin
  • 处理多个 SIGCHLD

    在运行 Linux 2 6 35 的系统中 我的程序创建许多子进程并监视它们 如果子进程死亡 我会进行一些清理并再次生成该进程 我用signalfd 得到SIGCHLD我的进程中发出信号 signalfd异步使用libevent 当对非实时
  • matheca中的包导入问题

    在mathematica中 我使用的是mma 5 0 猜很老 如果我输入以下一行 Needs Graphics Master Animate Plot Sin n x x 0 2 Pi Axes gt False n 1 6 1 然后我收到
  • Dockerfile 无法构建

    直到几天前Dockerfile工作正常 当我今天尝试再次构建它时 它在终端中给出以下错误 我尝试使用多个 docker 基础映像 但仍然给出相同的错误 谁能帮我这个 我不认为我错过了什么 如果我错过了 它应该早先给我错误 但为什么现在呢 E
  • TempData 在 ASP.NET MVC 2 中读取后保留

    在 ASP NET MVC 2 中 TempData值将一直保留到会话结束或被读取为止 在里面微软的话 TempData 的值一直持续到 它被读取或直到会话时间 出去 以这种方式持久化 TempData 启用重定向等场景 因为 TempDa
  • pandas groupby 到嵌套 json

    我经常使用 pandas groupby 来生成堆叠表 但后来我经常想将生成的嵌套关系输出到 json 有什么方法可以从它生成的堆叠表中提取嵌套的 json 文件吗 假设我有一个像这样的 df year office candidate a