【问题标题】:Python Pandas JSON been stuck for daysPython Pandas JSON 卡住了好几天
【发布时间】:2021-10-05 15:34:39
【问题描述】:

我希望根据每场比赛的得分对车手进行排名。我希望每次进行新比赛时都会更新此信息,并且排名仅基于最后 3 场赛事。

我正在尝试从我的 data.json 文件中一次构建一个表,其中数据存储在嵌套字典中。

{ "1": { 
    "Rider": [ "Fabien", "Rick", "Oleg" ], 
    "Pts": [ 850, 680, 575 ] 
  } 
} 

我已经设法使用 pandas 对结果进行排序,并根据需要为我提供排名前 3 的骑手,但前提是脚本中包含该数据。

当尝试从我的 data.json 文件构建数据时,我似乎可以得到正确的布局。

我想要的是:

Rider Pts1
0 Fabien 850
1 Rick 680
2 Oleg 575

但我得到的是

1
Rider [Fabien, Rick, Oleg]
Pts1 [850, 680, 575]

我已经搜索和搜索,但我不能问正确的问题,因为我在兜圈子

【问题讨论】:

  • 你能发一个data.json的样本吗?
  • { "1": { "Rider": [ "Fabien", "Rick", "Oleg" ], "Pts": [ 850, 680, 575 ] } }
  • 所以您只想将 json 读取到 pandas 数据帧?
  • data["1"] 转换为数据帧,而不是data(其中datajson.load() 的结果)

标签: python json pandas dataframe


【解决方案1】:

IIUC,您想将 json 转换为 pandas DataFrame。试试:

import json

df = pd.DataFrame(json.load(open("data.json"))["1"])

>>> df
    Rider  Pts
0  Fabien  850
1    Rick  680
2    Oleg  575

【讨论】:

  • 使用json.load(f) 而不是json.loads(f.read())
  • 谢谢,已编辑!
  • 非常感谢。我昨天应该问的,但我试图并试图寻找答案。希望现在我可以合并骑手上的每个事件,以创建一个表格来对骑手进行排名,就像我在脚本中的数据在脚本中的变量中一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
相关资源
最近更新 更多