如何从双嵌套字典创建多索引 DataFrame?

问题描述 投票:0回答:1

我正在尝试从双嵌套字典创建一个pandas多索引DataFrame,但我对如何做到这一点感到非常困惑。

作为一些背景,我从网站上抓取了一些数据并将其放入这个嵌套字典形式中,因为我认为它是最容易使用的(但我似乎错了:D)...

嵌套字典目前看起来像这样,我想将其放入一个以战斗机的

ID
作为列的 DataFrame 中,这样在多个战斗机的情况下,每列将代表一个新的战斗机,即
fight number
(在此示例中,
0
1
作为第一行索引),内部级别为
fight details
(例如,
date
fighter weight
等)。

{'ID': {0: {'date ↕': '2024-05-23',
   'Fighter Weight': '',
   'Opponent': 'fighter_1',
   'Opponent Weight': '',
   'w-l-d': ('11', '0', '0'),
   'result': 'VS',
   'rounds': '12'},
  1: {'date ↕': '2022-08-28',
   'Fighter Weight': '227¾',
   'Opponent': 'Fighter_2',
   'Opponent Weight': '211',
   'result': 'W-SD',
   'rounds': '12/12'}}}

在我运行时的初始运行中

DataFrame.from_dict(data)
这会产生一个输出,其中 DataFrame 的值是内部字典。

479205
0   {'date ↕': '2024-05-18', 'Fighter Weight': '',...
1   {'date ↕': '2023-10-28', 'Fighter 

如果您认为将数据存储到嵌套字典之外的其他内容中会更好,那么也请告诉我,因为我也愿意对抓取工具进行更改。

非常感谢!

python pandas dataframe dictionary
1个回答
0
投票

示例

import pandas as pd
d = {'ID': {0: {'date ↕': '2024-05-23', 'Fighter Weight': '', 'Opponent': 'fighter_1', 'Opponent Weight': '', 'w-l-d': ('11', '0', '0'), 'result': 'VS', 'rounds': '12'}, 1: {'date ↕': '2022-08-28', 'Fighter Weight': '227¾', 'Opponent': 'Fighter_2', 'Opponent Weight': '211', 'result': 'W-SD', 'rounds': '12/12'}}}

代码

out = pd.json_normalize(pd.DataFrame(d)['ID'])

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.