我已將一些資料輸入 TravelTime ( https://github.com/traveltime-dev/traveltime-python-sdk ) API,該 API 計算在 2 個位置之間行駛所需的時間。這個(呼叫)的結果是一個字典,看起來像這樣:
{'results': [{'search_id': 'arrival_one_to_many',
'locations': [{'id': 'KA8 0EU', 'properties': {'travel_time': 2646}},
{'id': 'KA21 5DT', 'properties': {'travel_time': 392}}],
'unreachable': []}]}
但是,我需要一個看起來有點像這樣的表:
| search_id | ID | 旅行時間 |
|---|---|---|
| 到達一個到很多 | KA21 5DT | 2646 |
| 到達一個到很多 | KA21 5DT | 392 |
我嘗試使用將此字典轉換為資料框
out_2 = pd.DataFrame.from_dict(out)
這顯示為一個資料框,其中有一列稱為結果,因此我嘗試使用out_2['results'].str.split(',', expand=True)在逗號分隔符處將其拆分為多列,但出現錯誤:
| 0 | |
|---|---|
| 0 | 鈉 |
有人能幫我把這本字典變成可讀和可用的資料框/表嗎?
謝謝
uj5u.com熱心網友回復:
@MICHAELKM22,因為您沒有使用字典中的所有鍵,您將無法將其直接轉換為資料幀。首先提取所需的鍵,然后將其轉換為資料框。
df_list = []
for res in data['results']:
serch_id = res['search_id']
for loc in res['locations']:
temp_df = {}
temp_df['search_id'] = res['search_id']
temp_df['id'] = loc["id"]
temp_df['travel_time'] = loc["properties"]['travel_time']
df_list.append(temp_df)
df = pd.DataFrame(df_list)
search_id id travel_time
0 arrival_one_to_many KA8 0EU 2646
1 arrival_one_to_many KA21 5DT 392
uj5u.com熱心網友回復:
首先,要決議這個 json 以獲取所需的值。一旦獲取了這些值,我們就可以將它們存盤到資料框中。
下面是決議這個 json 的代碼(PS:我已經將 json 保存在一個檔案中)并將這些值添加到 DataFrame 中。
import json
import pandas as pd
f = open('Json_file.json')
req_file = json.load(f)
df = pd.DataFrame()
for i in req_file['results']:
dict_new = dict()
dict_new['searchid'] = i['search_id']
for j in i['locations']:
dict_new['location_id'] = j['id']
dict_new['travel_time'] = j['properties']['travel_time']
df = df.append(dict_new, ignore_index=True)
print(df)
以下是上述代碼的輸出:
searchid location_id travel_time
0 arrival_one_to_many KA8 0EU 2646.0
1 arrival_one_to_many KA21 5DT 392.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/418710.html
標籤:
上一篇:向字典添加新鍵
