将字典存储在 pandas 数据框中

2024-04-21

我想将字典存储到数据框中

dictionary_example={1234:{'choice':0,'choice_set':{0:{'A':100,'B':200,'C':300},1:{'A':200,'B':300,'C':300},2:{'A':500,'B':300,'C':300}}},
   234:{'choice':1,'choice_set':0:{'A':100,'B':400},1:{'A':100,'B':300,'C':1000}},
   1876:{'choice':2,'choice_set':0:{'A': 100,'B':400,'C':300},1:{'A':100,'B':300,'C':1000},2:{'A':600,'B':200,'C':100}}
  }

这让他们陷入

id choice  0_A  0_B  0_C  1_A  1_B  1_C  2_A  2_B  2_C  
1234  0     100  200 300  200  300  300  500  300  300
234  1      100  400  -   100  300  1000  -    -    -
1876  2     100  400  300  100  300  1000 600 200 100

我认为以下内容非常接近,核心思想只是将这些字典转换为 json 并依靠 pandas.read_json 来解析它们。

dictionary_example={
        "1234":{'choice':0,'choice_set':{0:{'A':100,'B':200,'C':300},1:{'A':200,'B':300,'C':300},2:{'A':500,'B':300,'C':300}}},
       "234":{'choice':1,'choice_set':{0:{'A':100,'B':400},1:{'A':100,'B':300,'C':1000}}},
       "1876":{'choice':2,'choice_set':{0:{'A': 100,'B':400,'C':300},1:{'A':100,'B':300,'C':1000},2:{'A':600,'B':200,'C':100}}}

    }

df = pd.read_json(json.dumps(dictionary_example)).T


def to_s(r):
    return pd.read_json(json.dumps(r)).unstack()

flattened_choice_set = df["choice_set"].apply(to_s)

flattened_choice_set.columns = ['_'.join((str(col[0]), col[1])) for col in flattened_choice_set.columns] 

result = pd.merge(df, flattened_choice_set, 
         left_index=True, right_index=True).drop("choice_set", axis=1)

result
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将字典存储在 pandas 数据框中 的相关文章

随机推荐

  • Nginx 位置“不等于”正则表达式

    我该如何设置locationNginx 中的条件是否响应任何不等于列出的位置 I tried location dir1 file2 php rewrite http example com 1 permanent 但它不会触发重定向 它只
  • Rails:如何为 ruby​​ 模块编写测试?

    我想知道如何为混合到几个类中的模块编写单元测试 但不太知道如何去做 我是否通过在包含它们的类的测试文件之一中编写测试来测试实例方法 似乎不正确 或者您可以以某种方式将所包含方法的测试保留在特定于模块的单独文件中吗 同样的问题也适用于类方法
  • VBO - 没有指数化的指数化

    我正在尝试将 VBO 与元素数组缓冲区一起用于我的三角形 如下所示 glBindBuffer GL ARRAY BUFFER g Buffer 0 glVertexPointer 3 GL FLOAT 0 BUFFER OFFSET 0 g
  • 如何使用 python-decorator 包来装饰类方法?

    我有一个装饰器 我想用它来装饰类方法 在下面的示例中 mydec 装饰器本身可以正常工作 但是在使用 help 或 pydoc 时它不会保留函数签名 为了解决这个问题 我研究了使用 decorator python decorator 包
  • GZipStream:为什么我们在压缩后转换为base 64?

    我只是在查看用于压缩字符串的代码示例 我发现使用 GZipStream 类就足够了 但我不明白为什么我们必须将其转换为 Base 64 字符串 如示例所示 using System IO Compression using System T
  • 无法在 Java 中使用 List 类进行向下转换 [重复]

    这个问题在这里已经有答案了 我一直在寻找这个问题的答案 但没有成功 我的问题是为什么不能使用泛型进行向下转型 我有一个名为 Job 的类 并扩展了一个名为 Model 的类 Job extends Model 现在 我从生成模型列表的可重用
  • 手动生成 .appxsym 和 .appxupload 用于 Windows 应用商店应用程序崩溃分析是否安全?

    我们有一个带有手动打包过程的应用程序 MakeAppx exe 我们希望将此应用程序发布到商店 包括公共符号文件 以便我可以下载 cab 进程转储文件进行崩溃分析 如这里描述的 http msdn microsoft com en us l
  • Bower:安装 2 个版本的 jQuery

    我将如何安装 2 个版本的 jQuery使用凉亭 我想要 v2 0 以及 1 9 1 来支持浏览器回退 我遇到的问题是如果你跑bower install jquery 1 9 1 jquery 2 0 0第一个版本被第二个版本覆盖 因为它们
  • 在 UIImage imageNamed 中使用外部图像

    我正在从网上下载两张图片 Apple png 和 电子邮件受保护 cdn cgi l email protection 我想用 UIImage imageNamed Apple png 因此它可以使用内置功能来检测是否应该显示 Apple
  • 使用 oAuth 或其他方式实施访问

    我正在尝试想办法向其他第三方网站开放网站及其部分数据库 类似于 Twitter 让网络应用程序连接到其数据库以检索数据并可能存储数据的方式 我最初的研究让我想到了 oAuth 或者是 openID 我需要做的是让第三方网站登录网站上的用户帐
  • 在 MATLAB 中将数组拆分为多个部分

    我想将数组分成相等的部分 如下所示 a 1 2 3 4 5 6 7 8 9 10 n 2 b split a n b 1 2 3 4 5 6 7 8 9 10 哪个函数可以做到这一点 尝试这个 a 1 2 3 4 5 6 reshape a
  • 想要为 Android Activity 提供半透明背景?

    我希望某个活动有一个半透明的背景 以便可以在该活动下方看到之前的活动 类似于在后台播放的视频上方弹出的半透明菜单 这可能吗 你能告诉我怎么做吗 注意 我无法使用 Android 的默认半透明主题 因为我正在为我的应用程序使用我自己的自定义背
  • 指向数组元素

    我想要实现的目标是说我有一个数组 我希望能够通过指向它来修改整个代码中的特定数组元素 例如在 C 中我可以这样做 int main int arr 5 1 2 3 4 5 int c arr 3 cout lt lt arr 3 lt
  • Xcode 12 和 OSLog (os.log):包装 OSLogMessage 导致编译错误:参数必须是字符串插值

    在 Xcode 12 iOS 14 中 OSLog 获得了对字符串插值的支持 耶 但仍然无法附加挂钩以轻松登录到其他渠道 例如 Crashlytics 所以我想我只需制作一个简单的包装器并传递参数即可 然而 关于字符串插值似乎发生了一些神奇
  • “无法开始调试”-VS2010 ASP.NET MVC 2

    我只能使用 VS2010 和 ASP NET MVC2 启动一次调试会话 当我结束第一个会话并尝试启动另一个会话时 我可以看到 无法开始调试 没有其他消息 我使用 Visual Studio Development Server 而不是 I
  • 删除单链表中的节点

    如何删除只有一个指针指向要删除节点的单链表中的节点 起始和结束指针未知 可用信息是指向应删除节点的指针 您可以在不获取前一个节点的情况下删除节点 方法是让它模仿以下节点并删除该节点 void delete Node n if is sent
  • SMLoginItemSetEnabled - 从应用程序沙盒登录开始 - Xcode 6.3(插图)

    当应用程序沙箱化时 如何使应用程序具有登录时启动功能 感谢 CORY BOHON 他创建了以下教程 http martiancraft com blog 2015 01 login items http martiancraft com b
  • 在 Pandas Lambda 函数中使用带有多个 if 语句的 Apply

    我试图根据数据框中人的大小来推断分类 如下所示 Size 1 80000 2 8000000 3 8000000000 我希望它看起来像这样 Size Classification 1 80000 lt 1m 2 8000000 1 10m
  • 我们可以在 OpenAPI/Swagger 2.0 中设置全局“消费”和“生产”吗?

    在我需要设置的每个路径中consumes and produces 我可以全局设置它们吗 post summary description consumes application json application xml produces
  • 将字典存储在 pandas 数据框中

    我想将字典存储到数据框中 dictionary example 1234 choice 0 choice set 0 A 100 B 200 C 300 1 A 200 B 300 C 300 2 A 500 B 300 C 300 234