data = {'': '11', 'RecID': '11', 'year': '2020', 'Flugnummer': 'DL67', 'cabin_class': 'economy', 'DEPARTURE_AIRPORT': 'ZRH', 'ARRIVAL_AIRPORT': 'ATL', 'Anzahl Flugsegmente': '1', 'distance': '7652', 'currencies': 'USD', 'EMISSIONS_KGCO2EQ': '1260', 'dep_country': 'CH', 'dep_coordinates': 'c(8.548056', 'arr_country': ' 47.458056)', 'arr_coordinates': 'US', None: ['c(-84.428101', ' 33.6367)']}
print("Payload ")
def emissions(data):
test_dic = {} # New dictionary
for i in range(0, len(data)):
if data["DEPARTURE_AIRPORT"][i] == "DEPARTURE_AIRPORT":
return DEPARTURE_AIRPORT
if data["ARRIVAL_AIRPORT"][i] == "ARRIVAL_AIRPORT":
return ARRIVAL_AIRPORT
if data["cabin_class"][i] == "cabin_class":
return cabin_class
test_dic.update({"segments": [{ "origin": DEPARTURE_AIRPORT, "destination": ARRIVAL_AIRPORT},], "cabin_class": cabin_class, "currencies":["USD"]})
return payload
print(emissions(data))
所需格式: data = {"segments" : [{"origin" : "ZRH","destination" : "ATL"},],"cabin_class" : "economy","currencies" : ["USD"]}
我在上面有這個資料集data,應該將其轉換為下面的所需格式。我嘗試了上面寫的函式,但它似乎不起作用,并且代碼已經在線我無法弄清楚。對不起,如果我再問這個問題。但我無法讓它作業,將串列/csv 更改為字典。
uj5u.com熱心網友回復:
defaultdictzip(*)你是這個任務的朋友嗎
from collections import defaultdict
def emissions(data):
result = defaultdict(list)
for org, arr, cls, cur in zip(*data.values()):
result["segments"].append({
"origin": org,
"destionation": arr})
result["cabin_class"].append(cls)
result["currencies"].append(cur)
return dict(result)
解釋:
defaultdict 采用型別。如果字典中不存在鍵,那么它將生成給定型別的新值,插入給定鍵下的值中,然后回傳該值。否則它只回傳與給定鍵關聯的值。
zip(*) 是一種矩陣轉置操作。它將列切換為行。列是給定資料集的所有值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/452119.html
上一篇:在R中創建一個包含表的串列
