我正在尝试从双嵌套字典创建一个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
如果您认为将数据存储到嵌套字典之外的其他内容中会更好,那么也请告诉我,因为我也愿意对抓取工具进行更改。
非常感谢!
示例
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'])
出