這個問題在這里已經有了答案:
預期(Excel 模型):
![如何 json_normalize() df 中的特定欄位并保留其他列?[復制]](https://img.uj5u.com/2022/05/23/837a0bd6ef5548f49269c2972ca4ec36.png)
實際的:
![如何 json_normalize() df 中的特定欄位并保留其他列?[復制]](https://img.uj5u.com/2022/05/23/9c67a0e1e4d24e00acd7a1de40dedc3e.png)
import json
d = {'report_id': [100, 101, 102], 'start_date': ["2021-03-12", "2021-04-22", "2021-05-02"],
'report_json': ['{"name":"John", "age":30, "disease":"A-Pox"}', '{"name":"Mary", "age":22, "disease":"B-Pox"}', '{"name":"Karen", "age":42, "disease":"C-Pox"}']}
df = pd.DataFrame(data=d)
display(df)
df = pd.json_normalize(df['report_json'].apply(json.loads), max_level=0, meta=['report_id', 'start_date'])
display(df)
查看關于 json_normalize() 的檔案,我認為 meta 引數是我需要保留 report_id 和 start_date 但它似乎無法正常作業,因為要保留的預期欄位沒有出現在最終資料集上。
有人有建議嗎?謝謝你。
uj5u.com熱心網友回復:
當您沿著結構化索引處理一個非常簡單的 json 時,您可以規范化您的框架,然后利用.join它沿著您的軸連接。
from ast import literal_eval
df.join(
pd.json_normalize(df['report_json'].map(literal_eval))
).drop('report_json',axis=1)
report_id start_date name age disease
0 100 2021-03-12 John 30 A-Pox
1 101 2021-04-22 Mary 22 B-Pox
2 102 2021-05-02 Karen 42 C-Pox
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/479718.html
上一篇:無法使用PyCharm讀取檔案
