gpt4 book ai didi

python - 如何让 Pandas 将 JSON 数据解压到正确的 DataFrame 而不是字典列表中

转载 作者:行者123 更新时间:2023-11-28 21:41:47 25 4
gpt4 key购买 nike

我正在尝试解析 http://dev.hsl.fi/tmp/citybikes/stations_20170503T071501Z 处的数据到 Pandas DataFrame 中。使用 read_json 给我一个字典列表,而不是一个以变量名作为列的适当的 DataFrame:

In [1]:

data = pd.read_json("http://dev.hsl.fi/tmp/citybikes/stations_20170503T071501Z")
print(data)

Out[1]:

result
0 {'name': '001 Kaivopuisto', 'coordinates': '60...
1 {'name': '002 Laivasillankatu', 'coordinates':...
.. ...
149 {'name': '160 Nokkala', 'coordinates': '60.147...
150 {'name': '997 Workshop Helsinki', 'coordinates...

[151 rows x 1 columns]

所有 orient 选项都会发生这种情况。我试过 json_normalize() 也无济于事,我在这里发现了一些其他的东西。我怎样才能把它变成一个合理的 DataFrame?谢谢!

最佳答案

选项 1
在字典列表中使用pd.DataFrame

pd.DataFrame(data['result'].values.tolist())

avl_bikes coordinates free_slots name operative style total_slots
0 12 60.155411,24.950391 18 001 Kaivopuisto True CB 30
1 3 60.159715,24.955212 9 002 Laivasillankatu True 12
2 0 60.158172,24.944808 16 003 Kapteeninpuistikko True 16
3 0 60.160944,24.941859 14 004 Viiskulma True 14
4 16 60.157935,24.936083 16 005 Sepänkatu True 32

选项 2
使用应用

data.result.apply(pd.Series)

avl_bikes coordinates free_slots name operative style total_slots
0 12 60.155411,24.950391 18 001 Kaivopuisto True CB 30
1 3 60.159715,24.955212 9 002 Laivasillankatu True 12
2 0 60.158172,24.944808 16 003 Kapteeninpuistikko True 16
3 0 60.160944,24.941859 14 004 Viiskulma True 14
4 16 60.157935,24.936083 16 005 Sepänkatu True 32

选项 3
或者您可以自己获取 json 并删除 results

import urllib, json
url = "http://dev.hsl.fi/tmp/citybikes/stations_20170503T071501Z"
response = urllib.request.urlopen(url)
data = json.loads(response.read())

df = pd.DataFrame(data['result'])
df

avl_bikes coordinates free_slots name operative style total_slots
0 12 60.155411,24.950391 18 001 Kaivopuisto True CB 30
1 3 60.159715,24.955212 9 002 Laivasillankatu True 12
2 0 60.158172,24.944808 16 003 Kapteeninpuistikko True 16
3 0 60.160944,24.941859 14 004 Viiskulma True 14
4 16 60.157935,24.936083 16 005 Sepänkatu True 32

关于python - 如何让 Pandas 将 JSON 数据解压到正确的 DataFrame 而不是字典列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44418461/

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