我使用 Pandas 讀取 csv 檔案并能夠從中創建字典,但需要將字典創建為特定格式。
flightinfo = pd.read_csv('flightdata.csv',quotechar='"',names=['starting_airport', 'destination_airport', 'airline', 'time', 'start_state','end_state'], header=None)
flightinfodict = flightinfo.to_dict(orient='records')
這給出了輸出
[{'starting_airport': 'Hilo International Airport', 'destination_airport': 'Boise Airport ', 'airline': 'delta', 'average_time_taken': 300, 'start_state': 'HAWAII', 'end_state': 'IDAHO'}
但我需要的輸出是
{'Hilo International Airport' : {'destination_airport': 'Boise Airport ', 'airline': 'delta', 'average_time_taken': 300}
我如何修改代碼以產生此輸出
謝謝
uj5u.com熱心網友回復:
可能有更復雜的方法,但是這種面向記錄的 dict 處理應該可以完成這項作業:
def get_dict_without(d, key_to_remove):
d.pop(key_to_remove)
return d
new_flightinfodict = [{rec["starting_airport"]: get_dict_without(rec, "starting_airport")} for rec in flightinfodict]
uj5u.com熱心網友回復:
設定starting_airport為索引并使用to_dict(orient='index'):
flightinfodict.set_index('starting_airport').to_dict(orient='index')
輸出:
{'Hilo International Airport': {'destination_airport': 'Boise Airport ',
'airline': 'delta',
'average_time_taken': 300,
'start_state': 'HAWAII',
'end_state': 'IDAHO'}}
或者:
df.set_index('starting_airport')[['destination_airport','airline','average_time_taken']].to_dict(orient='index')
因為您表示您只需要字典中的這三列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/360604.html
上一篇:來自CSV檔案的日期時間處理
