我有一個包含 JSON 字典作為列的資料集。我想根據它們的鍵將此列決議為新列。列本身是一個物件,df.iloc 給了我一個字串,所以我不知道如何處理它。我嘗試了 json_normalize 和 tolist 但顯然他們錯了。
Unnamed: 0 _id userInputs sessionID
222 222 5bc915caf9af8b0dad3c0660 [{'userID': 22, 'milesRequested': 170, 'WhPerM... 2_39_88_24_2018-04-30 15:07:48.608581
和用戶輸入:
c.iloc[0]['userInputs']
"[{'userID': 22, 'milesRequested': 170, 'WhPerMile': 350, 'minutesAvailable': 550, 'modifiedAt': 'Mon, 30 Apr 2018 15:08:54 GMT', 'paymentRequired': True, 'requestedDeparture': 'Tue, 01 May 2018 00:17:49 GMT', 'kWhRequested': 59.5}]"
因此,userID、milesRequested 等將添加為與所有資料集的值相對應的新列。
資料集
uj5u.com熱心網友回復:
首先,將字串轉換為 python 物件應用于ast.literal_eval列,然后將 dict 串列轉換為資料框列:
from ast import literal_eval
df["userInputs"] = df["userInputs"].apply(literal_eval)
df = df.explode("userInputs")
df = pd.concat([df, df.pop("userInputs").apply(pd.Series)], axis=1)
print(df)
印刷:
_id userID milesRequested WhPerMile minutesAvailable modifiedAt paymentRequired requestedDeparture kWhRequested
0 xxx 22 170 350 550 Mon, 30 Apr 2018 15:08:54 GMT True Tue, 01 May 2018 00:17:49 GMT 59.5
使用的資料框:
_id userInputs
0 xxx [{'userID': 22, 'milesRequested': 170, 'WhPerMile': 350, 'minutesAvailable': 550, 'modifiedAt': 'Mon, 30 Apr 2018 15:08:54 GMT', 'paymentRequired': True, 'requestedDeparture': 'Tue, 01 May 2018 00:17:49 GMT', 'kWhRequested': 59.5}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504586.html
上一篇:職位串列過濾反應
