gpt4 book ai didi

python - python 中压平 Json 文件的问题

转载 作者:行者123 更新时间:2023-12-01 01:31:20 25 4
gpt4 key购买 nike

我有一个 json 文件,其中包含比赛分钟的进球记录。我尝试使用以下代码将其展平:

data_Loc ='Season Fixtures.json'
with open(data_Loc) as data_file:
d= json.load(data_file)
df_Fixtures = pd.io.json.json_normalize(d,'matches')

输出如下:

Pls see here

然后我使用以下方法将目标转换为系列:

df_goal = df_Fixtures.goals.apply(pd.Series)

输出如下:

enter image description here

它在列中包含另一个字典。

如何将目标列直接转换为周期?

输入数据文件可以从here下载

谁能告诉我如何展平到目标列的最后一部分?这意味着目标列将转换为多个列,例如周期、分钟、playerId、TeamId、Type。

为了包含ma​​tchId,我创建了一个新的数据框,如下所示,并与 Jez 建议的先前数据框结合起来,如下所示:

df_MatchID = pd.io.json.json_normalize(d,'matches')
df_MatchID = df_MatchID[['matchId']]
df_Fixtures_details = pd.concat([df_MatchID,df_Fixtures],axis =1)

输出如下(其他列显示 NaN:) enter image description here

谢谢泽普

最佳答案

我相信你需要:

df_Fixtures = pd.io.json.json_normalize(d, ['matches','goals'])

print (df_Fixtures.head())
minute period playerId teamId type
0 14 FirstHalf 206314 3161 goal
1 72 SecondHalf 20661 3204 goal
2 78 SecondHalf 206314 3161 goal
3 3 FirstHalf 300830 3187 goal
4 72 SecondHalf 21385 3187 goal

编辑:

data_Loc ='Season Fixtures.json'
with open(data_Loc) as data_file:
d= json.load(data_file)['matches']

df = pd.io.json.json_normalize(d, ['goals'],'matchId')

print (df.head())
minute period playerId teamId type matchId
0 14 FirstHalf 206314 3161 goal 2759508
1 72 SecondHalf 20661 3204 goal 2759508
2 78 SecondHalf 206314 3161 goal 2759508
3 3 FirstHalf 300830 3187 goal 2759507
4 72 SecondHalf 21385 3187 goal 2759507

关于python - python 中压平 Json 文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52829706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com