我嘗試使用以下代碼將 JSON 資料轉換為資料框:
import json
l = []
for line in open('data.json', 'r'):
l.append(json.loads(line))
df = pd.DataFrame(l)
df.parameters.head(1))
我看起來像這樣:
{"user_id":0,"client":"35.181","parameters":[{"key":"from","value":"9.204444;45.486389"},{"key":"to","value":"200"},{"key":"with","value":"Train"},
df 看起來像這樣:
user_id client ... parameters
0 30112 ... [{'key': 'from', 'value': '9.29''}, {'key': 'to', 'value': '200'}, {'key': 'with', 'value': 'Train'}]
1 30113 ... [{'key': 'from', 'value': '9.20''}, {'key': 'to', 'value': '30'}, {'key': 'with', 'value': 'Car'}]
而且我希望能夠將引數列分成 3 個不同的列,它們是:from、to、with。
user_id client error ... from to with
0 30112 yes ... 9.29 200 Train
1 30113 NaN ... 9.20 30 Car
請問你能幫幫我嗎?
uj5u.com熱心網友回復:
將串列推導與 DataFrame 建構式一起使用:
m = df['parameters'].notna()
df1 = pd.DataFrame([{y['key']: y['value'] for y in x} for x in df.pop('parameters').dropna()],
index=df.index[m])
df = df.join(df1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/434026.html
下一篇:從串列中構造一個pandasdf,ValueError:toomanyvaluestounpack(expected3)
