gpt4 book ai didi

python - Pandas .read_json(JSON_URL)

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:51 25 4
gpt4 key购买 nike

我正在使用 Pandas 从 API 获取数据。 API 返回 JSON 格式的数据。但是,json 在数据框中有一些我不想要的值。由于这些值,我无法为数据框分配索引。以下是格式。

{
"Success": true,
"message": "",
"result": [{"id":12312312, "TimeStamp":"2017-10-04T17:39:53.92","Quantity":3.03046306,},{"id": 2342344, "TimeStamp":"2017-10-04T17:39:53.92","Quantity":3.03046306,}]}

我只对“结果”部分感兴趣。一种方法是使用 request.get(request_URL) 导入 json,然后在提取“结果”部分后,将结果转换为数据帧。第二种方法是使用 Pandas.read_json(JSON_URL) 导入数据,将返回的数据帧转换回 json,然后在提取“结果”部分后,将结果转换为数据帧。

还有其他方法吗?什么是最好的方法,为什么?谢谢。

最佳答案

使用json_normalize :

import pandas as pd

df = pd.json_normalize(json['result'])
print (df)

Quantity TimeStamp id
0 3.030463 2017-10-04T17:39:53.92 12312312
1 3.030463 2017-10-04T17:39:53.92 2342344

也在这里工作:

df = pd.DataFrame(d['result'])
print (df)
Quantity TimeStamp id
0 3.030463 2017-10-04T17:39:53.92 12312312
1 3.030463 2017-10-04T17:39:53.92 2342344

对于 DatetimeIndex 转换列 to_datetimeset_index :

df['TimeStamp'] = pd.to_datetime(df['TimeStamp'])
df = df.set_index('TimeStamp')
print (df)

Quantity id
TimeStamp
2017-10-04 17:39:53.920 3.030463 12312312
2017-10-04 17:39:53.920 3.030463 2342344

编辑:

加载数据的解决方案:

from urllib.request import urlopen
import json
import pandas as pd

response = urlopen("https://bittrex.com/api/v1.1/public/getmarkethistory?market=BTC-ETC")
json_data = response.read().decode('utf-8', 'replace')

d = json.loads(json_data)
df = pd.json_normalize(d['result'])
df['TimeStamp'] = pd.to_datetime(df['TimeStamp'])
df = df.set_index('TimeStamp')

print (df.head())
Quantity Total
TimeStamp
2017-10-05 06:05:06.510 3.579201 0.010000
2017-10-05 06:04:34.060 45.614760 0.127444
2017-10-05 06:04:34.060 5.649898 0.015785
2017-10-05 06:04:34.060 1.769847 0.004945
2017-10-05 06:02:25.063 0.250000 0.000698

另一种解决方案:

df = pd.read_json('https://bittrex.com/api/v1.1/public/getmarkethistory?market=BTC-ETC')
df = pd.DataFrame(df['result'].values.tolist())
df['TimeStamp'] = pd.to_datetime(df['TimeStamp'])
df = df.set_index('TimeStamp')
print (df.head())

Quantity Total
TimeStamp
2017-10-05 06:11:25.100 5.620957 0.015704
2017-10-05 06:11:11.427 22.853546 0.063851
2017-10-05 06:10:30.600 6.999213 0.019555
2017-10-05 06:10:29.163 20.000000 0.055878
2017-10-05 06:10:29.163 0.806039 0.002252

关于python - Pandas .read_json(JSON_URL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46578128/

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