python - 如何为多级字典进行不同的连接 - python
问题描述
我有一个名为的多级字典mydict
,看起来像下面的字典,我正在尝试进行连接,为字典的每个键提供不同的数据框。
mydict -> {agent_1: {step1: {...}, step2: {...}, step3: {...}}, ...}
我可以用下面的代码做到这一点,但这意味着手工完成,我正在处理大数据。
boo = pd.DataFrame.from_dict(mydict[agent_1]['step_1'])
boo1 = pd.DataFrame.from_dict(mydict[agent_1]['step_2'])
boo2 = pd.DataFrame.from_dict(mydict[agent_1]['step_3'])
boo3 = pd.DataFrame.from_dict(mydict[agent_1]['step_4'])
boo_tot = pd.concat([boo, boo1, boo2, boo3])
我也很难自动化这个,因为step
每个key
. mydict
例如,假设agent_1
有 4 个步骤,而agent_2
只有 3 个步骤。我尝试遵循这个stackoverflow 接受的答案中给出的内容,但它不适用于我的情况。
正如您在下面看到的,这种方法给了我一个数据帧,并且每个数据帧的所有值step
(=etape
在下面的 df 中)每次都在一行中,而我希望每个agent
带有pcc
,time
和as 列的不同数据帧route_type
和mode
它们的值打印在另一排下为每个step
这是我希望得到的:
For agent_1:
mode pcc time route_type etape id
0 TC data1 time1 data1 etape_0 NaN
1 TC data2 time2 data2 etape_0 NaN
2 TC data3 time3 data3 etape_0 NaN
3 TC data4 time4 data4 etape_0 NaN
... ... ... ... ... ... ...
16 MAP data16 time16 data16 etape_1 NaN
17 MAP data17 time17 data17 etape_1 NaN
18 MAP data18 time18 data18 etape_1 NaN
19 MAP data19 time19 data19 etape_1 NaN
... ... ... ... ... ... ...
And then I'd get a second dataframe for agent_2, a third for agent_3 etc.
我找不到获得我想要的东西的方法,不幸的是我关于这个主题的词汇量非常有限,因为我不经常使用多级字典。关于此事的任何提示都会有很大帮助。
解决方案
推荐阅读
- sql - SQL中的循环滚动平均值
- python - 当根被销毁时,对 gui 对象的引用会发生什么?
- css - 如何创建一条水平线的 div,其中一些向右流动?所有 div 应垂直对齐
- lua - 试图缩短 Lua 代码
- android - Gluon Mobile - Android:访问位置时请求位置权限
- hyperledger-fabric - 结构重启之间的 Hyperledger 数据持久性
- python - 使用地图创建一个元组,带有条件的偶数或奇数列表
- java - 无法在列表中的列表中单击 WebElement
- parsing - TextFSM nxos 模板
- python - `with open`多个`findall`但打开文件一次