我正在查看以下網站:https : //data.gov.sg/dataset/bunker-sales-monthly?resource_id=44da3191-6c57-4d4a-8268-8e2c418d4b43他們有以下使用 API 提取資料的示例:
import requests
result = []
headers = {'User-Agent': 'Mozilla/5.0'}
url = "https://data.gov.sg/api/action/datastore_search?resource_id=44da3191-6c57-4d4a-8268-8e2c418d4b43"
r = requests.get(url, headers=headers)
data = r.json()
print(data)
這會產生以下內容,其中我只想從輸出中提取“記錄”位,并轉換為更易讀的格式。理想情況下,我希望在 Pandas 資料框中使用這些資料:
{'records': [{'bunker_type': 'Marine Gas Oil', 'bunker_sales': '135.4', '_id': 1, 'month': '1995-01'}, {'bunker_type': 'Marine Diesel Oil', 'bunker_sales': '67.9', '_id': 2, 'month': '1995-01'}, {'bunker_type': 'Marine Fuel Oil 180 cst', 'bunker_sales': '412.9', ' _id': 3, 'month': '1995-01'}, {'bunker_type': 'Marine Fuel Oil 380 cst', 'bunker_sales': '820.3', '_id': 4, 'month': '1995- 01'}, {'bunker_type': 'Marine Fuel Oil 500 cst ', 'bunker_sales': '0', '_id': 5, 'month': '1995-01'}...
格式如下:
df= pd.DataFrame(columns=['month', 'bunker_type', 'bunker_sales'])
我該如何提取這些資料?
uj5u.com熱心網友回復:
嘗試pd.json_normalize:
df = pd.json_normalize(data['result'], 'records')
print(df)
# Output:
bunker_type bunker_sales _id month
0 Marine Gas Oil 135.4 1 1995-01
1 Marine Diesel Oil 67.9 2 1995-01
2 Marine Fuel Oil 180 cst 412.9 3 1995-01
3 Marine Fuel Oil 380 cst 820.3 4 1995-01
4 Marine Fuel Oil 500 cst 0 5 1995-01
.. ... ... ... ...
95 Ultra Low-Sulfur Fuel Oil 0 95 1995-08
96 Others 102.2 96 1995-08
97 Marine Gas Oil 101.7 97 1995-09
98 Marine Diesel Oil 63 98 1995-09
99 Marine Fuel Oil 180 cst 395 99 1995-09
[100 rows x 4 columns]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/383049.html
上一篇:將PythonDataFrame中的值更改為二進制標志(For-Loop問題)
下一篇:將資料幀從時間戳轉換為時間間隔
