多个字典具有重复的键但不同的值并且列中没有限制

2024-01-11

这里的数据集在字典中具有无限的键。根据客户的不同,行中的详细信息列可能有不同的信息产品。

ID  Name    Detail
1   Sara    [{"Personal":{"ID":"001","Name":"Sara","Type":"01","TypeName":"Book"},"Order":[{"ID":"0001","Date":"20200222","ProductID":"C0123","ProductName":"ABC", "Price":"4"}]},{"Personal":{"ID":"001","Name":"Sara","Type":"02","TypeName":"Food"},"Order":[{"ID":"0004","Date":"20200222","ProductID":"D0123","ProductName":"Small beef", "Price":"15"}]},{"Personal":{"ID":"001","Name":"Sara","Type":"02","TypeName":"Food"},"Order":[{"ID":"0005","Date":"20200222","ProductID":"D0200","ProductName":"Shrimp", "Price":"28"}]}]
2   Frank   [{"Personal":{"ID":"002","Name":"Frank","Type":"02","TypeName":"Food"},"Order":[{"ID":"0008","Date":"20200228","ProductID":"D0288","ProductName":"Salmon", "Price":"24"}]}]

我的预期输出是

ID Name Personal_ID Personal_Name Personal_Type Personal_TypeName Personal_Order_ID Personal_Order_Date Personal_Order_ProductID Personal_Order_ProductName Personal_Order_Price    
1  Sara 001         Sara          01            Book              0001              20200222            C0123                    ABC                          4    
2  Sara 001         Sara          02            Food              0004              20200222            D0123                    Small beef                   15
3  Sara 001         Sara          02            Food              0005              20200222            D0200                    Shrimp                       28
4  Frank 002        Frank         02            Food              0008              20200228            D0288                    Salmon                       24

因此,基本上,您的详细信息列中有一个嵌套的 JSON,您需要将其分解为 df,然后与原始列合并。

import pandas as pd
import json
from pandas import json_normalize

#create empty df to hold the detail information
detailDf = pd.DataFrame()
#We will need to loop over each row to read each JSON
for ind, row in df.iterrows():
    #Read the json, make it a DF, then append the information to the empty DF
    detailDf = detailDf.append(json_normalize(json.loads(row['Detail']), record_path = ('Order'), meta = [['Personal','ID'], ['Personal','Name'], ['Personal','Type'],['Personal','TypeName']]))

# Personally, you don't really need the rest of the code, as the columns Personal.Name
# and Personal.ID is the same information, but none the less.

# You will have to merge on name and ID
df = df.merge(detailDf, how = 'right', left_on = [df['Name'], df['ID']], right_on = [detailDf['Personal.Name'], detailDf['Personal.ID'].astype(int)])

#Clean up
df.rename(columns = {'ID_x':'ID', 'ID_y':'Personal_Order_ID'}, inplace = True)
df.drop(columns = {'Detail', 'key_1', 'key_0'}, inplace = True)

如果您查看我的评论,我建议您使用detailDf作为最终的 df,因为合并确实没有必要,并且该信息已经在详细信息 JSON 中。

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

多个字典具有重复的键但不同的值并且列中没有限制 的相关文章

  • Python 在 chroot 中运行时出现错误

    我尝试在 chroot 中运行一些 Python 程序 但出现以下错误 Could not find platform independent libraries
  • 底图上的子图

    我有一张英国地图和 121 个地点 每个地点有 3 个值 我想绘制 121 个位置中每个位置的三个值的小条形图 目前 这些值绘制为markersize属性 看起来像这样 密集恐惧症情节 https i stack imgur com 5fv
  • Python的reduce()短路了吗?

    If I do result reduce operator and False 1000 得到第一个结果后它会停止吗 自从False anything False 相似地 result reduce operator or True 10
  • html 解析器 python

    我正在尝试解析一个网站 我正在使用 HTMLParser 模块 问题是我想解析第一个 a href 评论后 但我真的不知道该怎么做 所以我在文档中发现有一个函数叫做handle comment 但我还没有找到如何正确使用它 我有以下内容 i
  • Django 的 URL 覆盖率测试为 0%,为什么?

    使用姜戈鼻子 我对 URL 进行了测试 但 URL 覆盖率仍然为 0 为什么 python manage py 测试配置文件 这是我的报道 Name Stmts Miss Cover Missing profiles 0 0 100 pro
  • 网页抓取 - 前往第 2 页

    如何访问数据集的第二页 无论我做什么 它都只返回第 1 页 import bs4 from urllib request import urlopen as uReq from bs4 import BeautifulSoup as sou
  • 杂乱的扭曲连接在不干净的时尚中消失了。没有代理。已经尝试过标题

    我正在尝试抓取这个网站 https www5 apply2jobs com jupitermed ProfExt index cfm fuseaction mExternal searchJobs https www5 apply2jobs
  • Django - 电子邮件发送两次

    每当我使用如下所示的电子邮件设置从views py调用下面的方法时 电子邮件的两份副本都会发送给收件人 并且我收到如下所示的错误 def sendEmailBasic request msg EmailMessage Request Cal
  • 如何使用 PySpark 有效地将这么多 csv 文件(大约 130,000 个)合并到一个大型数据集中?

    我之前发布了这个问题并得到了一些使用 PySpark 的建议 如何有效地将这一大数据集合并到一个大数据框中 https stackoverflow com questions 60259271 how can i merge this la
  • pip 安装软件包两次

    不幸的是我无法重现它 但我们已经见过几次了 pip 将一个软件包安装两次 如果卸载第一个 第二个就会可见并且也可以被卸载 我的问题 如果一个包安装了两次 如何用 python 检查 背景 我想编写一个测试来检查这一点 devOp Updat
  • 参数验证,Python 中的最佳实践[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 让我们举一个 API 的例子 def get abs directory self path if os path isdir path ret
  • 如何获得没有前缀的虚拟人物?

    我想从两个不同的列中获取虚拟数据 但没有任何前缀 资料说明 X Y 123 AAA 456 BBB 123 AAA 789 CCC 预期结果 X Y 789 456 123 CCC BBB AAA 123 AAA 0 0 1 0 0 1 4
  • 如何在 Python 中从 HTML 页面中提取 URL [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须用Python 编写一个网络爬
  • 如何在C++中列出Python模块的所有函数名称?

    我有一个 C 程序 我想导入一个 Python 模块并列出该模块中的所有函数名称 我该怎么做 我使用以下代码从模块中获取字典 PyDictObject pDict PyDictObject PyModule GetDict pModule
  • Django 接受 AM/PM 作为表单输入

    我试图弄清楚如何使用 DateTime 字段在 Django 中接受 am pm 作为时间格式 但我遇到了一些麻烦 我尝试在 forms py 文件中这样设置 pickup date time from DateTimeField inpu
  • Jupyter Notebook:没有名为 pandas 的模块

    我搜索了其他问题 但没有找到任何有帮助的内容 大多数只是建议您使用 conda 或 pip 安装 pandas 在我的 jupyter 笔记本中 我试图导入 pandas import pandas as pd 但我收到以下错误 Modul
  • Spyder 如何在同一线程的后台运行 asyncio 事件循环(或者确实如此?)

    我已经研究 asyncio 模块 功能几天了 因为我想将它用于我的应用程序的 IO 绑定部分 并且我认为我现在对它的工作原理有一个合理的理解 或者在至少我认为我已经理解了以下内容 任一时刻 任一线程中只能运行一个异步事件循环 一旦一切都设置
  • 如何正确消除字典中的元素直到只剩下一个字符串

    我真的需要这方面的帮助 def get winner dict winner new dict for winner in dict winner first letter winner 0 value dict winner winner
  • 从另一个 python 脚本获取返回信息

    我在 Linux 上 我有一个 python 脚本 我想从另一个 python 脚本调用它 我不想将其作为模块导入 为了一层安全性 现在为了学术练习 因为我想弄清楚这一点 我实际上想让一个脚本使用 os system 或另一个类似的函数 并
  • 在 Python 的 Textmate 中突出显示尾随空格?

    我想做类似的事情this http remysharp com 2008 03 30 trailing white space in textmate Textmate 提示 这样当我在 Python 中编写代码时 尾随空白总是以某种方式突

随机推荐

  • 在 VSCode 中调试 FastAPI 应用程序

    我正在尝试调试使用 FastAPI uvicorn 的应用程序 web api 我也在使用诗歌并在 vscode 中设置 projev 虚拟环境 i read this https fastapi tiangolo com tutorial
  • 如何在CSS中从上到下堆叠div

    我有一个这样的列表 div class item 1 div div class item 2 div div class item 3 div div class item 4 div div class item 5 div 使用 cs
  • HttpClient 返回特殊字符但没有可读内容

    我正在尝试使用 async await 和 HttpClient 下载网页 但只得到一个充满特殊字符的字符串 代码就像 static async void DownloadPageAsync string url HttpClient cl
  • Flutter - 跨多个设备的端到端加密的密钥存储

    我正在编写一个 flutter 应用程序 用户基本上可以在其中创建注释 我编写了代码来为用户创建私钥 稍后用于加密他们的数据 加密数据存储在 Firebase Firestore 中 当检索他们的数据时 将使用他们的密钥对其进行解密 我看过
  • TensorFlow:“模块”对象没有属性“SessionRunHook”

    我在 Ubuntu 16 04 上运行 TensorFlow r0 10 版本 我已经能够运行一些基本教程 包括 MIST 字符识别教程 我正在努力完成CIFAR 10 https www tensorflow org versions r
  • 在线和离线用户实时使用 strope.js

    我在用strope js用于连接的 javascript 客户端库xmpp server openfire 使用下面的代码 var BOSH SERVICE http 127 0 0 1 7070 http bind connection
  • 将表单另存为图像(屏幕截图)

    我有两种形式 表格 1 包含我需要截图的内容 表格 2 包含图形绘制 该表格始终位于顶部但透明 我需要对第一个表单进行屏幕截图 而不将其放在表单 2 之上 也不包含表单 2 中的内容 这是我正在处理的一些问题 我正在努力修复 Private
  • Android checkbox.isChecked() 无法正常工作

    我有一个ListView其中一个checkbox显示在每行中 每一次checkbox被触摸 我检查它是否被选中 但每次 第一项总是返回false 但是 如果选中第 2 项 则 ischecked 第一项的复选框的方法总是返回true 这是我
  • 捕获 Ruby on Rails 应用程序的屏幕截图 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 Rails 应用程序 我想在用户输入 URL 时捕获网页的屏幕截图 是否可以在 Rails
  • SVN + SASL + ActiveDirectory:如何

    我正在尝试设置 SVN 以针对 ActiveDirectory 进行身份验证 我知道如果您将 SVN 设置为使用 Apache 提供服务 这是可能的 但这样做会带来太多开销 并且 SVN 运行速度太慢 通过阅读 SVN 文档 听起来现在应该
  • Python / Excel 自动化 - 将 2 个单元格中的文本放入 1 个单元格中

    我正在使用 python 自动执行使用 Excel 工作表列表创建多个名称标签的过程 我的问题是 我需要获取 名称 列和 企业 列值并将它们放入新文档的单个单元格中 像这样 To this 现在我正在使用 openpyxl 虽然我设法转移其
  • 在到期日期前“x”天启动 Sharepoint 工作流程

    我想在 Sharepoint 列表上创建工作流程 它应该发送通知电子邮件 问题是我希望此工作流程基于到期日期 在到期日期前 30 天发送电子邮件 并且我不创建或更新任何新的列表项 我知道只有在更改 创建任何项目时才能创建工作流程 但我在网上
  • 如何使用 .NET 检索数码相机拍摄的照片的属性?

    最好在 VB Net 中 但 C 也可以 我如何访问数码相机添加到文件中的额外属性 例如Date Picture Taken Shutter Speed or Camera Model 我维护一个库 为从各种文件格式中提取图像元数据提供全面
  • 代码:Blocks Mingw 编译器错误:可变大小对象可能未初始化

    我正在使用 C 创建一个简单的终端幻想游戏 我似乎遇到了错误 错误 可变大小的对象 项目 可能未初始化 这是代码 string useItem int item string items item HP Potion Attack Poti
  • 在WPF中,调用datagrid.CancelEdit()后DataGridTextColumn的值不会回滚

    我有一个包含两个文本列的数据网格 允许用户修改默认值 1 单击按钮时 如果用户按 是 我将显示一条确认消息 数据网格文本列的值应使用新值保存 如果是 否 网格文本列的值应滚动 重置回默认值或以前的值 问题在于 当用户单击确认消息中的 否 按
  • 向 PostgreSQL 添加不区分大小写的排序规则

    默认情况下 PostgreSQL 没有不区分大小写的排序规则 它的文档描述了一种根据操作系统区域设置添加新排序规则的方法 例如 http www postgresql org docs 9 1 static sql createcollat
  • 拉取后无法加载项目:“预期为‘ENCODING’,但发现为‘utf-8’。”

    从 git 拉取项目 WPF 应用程序 后 我收到此错误 可能是什么原因造成的 在拉动它之前它工作得很好 其他人致力于该项目 我的 csproject 文件中似乎有一些未关闭的标签 但奇怪的是 却报了上面的错误
  • 转换为 .NET 4 后 ClickOnce 升级失败

    我们的应用程序是通过 ClickOnce 部署的 NET 3 5 我们刚刚升级到 NET 4 0 并适当更新了先决条件 对于首次使用的用户或通过安装 HTML 页面安装的用户来说 安装仍然可以正常工作 它将自动为他们安装 NET 4 框架
  • PHP 包含的 html 内容会影响我的 seo 吗?

    今天我购买了一个小型 CMS 系统 有了这个 CMS 我可以将静态站点转换为可编辑页面 我必须剪切我想要编辑的内容 然后将其粘贴到管理区域中 该脚本将生成包含此内容的新 html 我必须将此 html 包含到原始内容所在的位置 我需要一些关
  • 多个字典具有重复的键但不同的值并且列中没有限制

    这里的数据集在字典中具有无限的键 根据客户的不同 行中的详细信息列可能有不同的信息产品 ID Name Detail 1 Sara Personal ID 001 Name Sara Type 01 TypeName Book Order