亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 json_normalize 將 json 轉換為數據幀?

如何使用 json_normalize 將 json 轉換為數據幀?

皈依舞 2022-01-05 20:30:26
我正在嘗試將 api 響應從 json 轉換為 Pandas 中的數據幀。我遇到的問題是 de 數據嵌套在 json 格式中,而我的數據框中沒有得到正確的列。數據是從具有以下格式的 api 收集的:{    "data": [        {            "timestamp": "2019-04-10T11:40:13.437Z",            "score": 87,            "sensors": [                {                    "comp": "temp",                    "value": 20.010000228881836                },                {                    "comp": "humid",                    "value": 34.4900016784668                },                {                    "comp": "co2",                    "value": 418                },                {                    "comp": "voc",                    "value": 166                },                {                    "comp": "pm25",                    "value": 4                },                {                    "comp": "lux",                    "value": 961.4000244140625                },                {                    "comp": "spl_a",                    "value": 45.70000076293945                }            ],            "indices": [                {                    "comp": "temp",                    "value": -1                },                {                    "comp": "humid",                    "value": -2                },                {                    "comp": "co2",                    "value": 0                },                {                    "comp": "voc",                    "value": 0                },                {                    "comp": "pm25",                    "value": 0                }            ]        },        {            "timestamp": "2019-04-10T11:40:03.413Z",            "score": 87,            "sensors": [                {                    "comp": "temp",                    "value": 20.040000915527344                },                {                    "comp": "humid",                    "value": 34.630001068115234                },我需要的結果如下: 結果有人可以幫助我嗎?
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

你可以重塑你的作品數據:


data = {

    "data": [

        {

            "timestamp": "2019-04-10T11:40:13.437Z",

            "score": 87,

            "sensors": [

                {

                    "comp": "temp",

                    "value": 20.010000228881836

                },

                {

                    "comp": "humid",

                    "value": 34.4900016784668

                },

                {

                    "comp": "co2",

                    "value": 418

                },

                {

                    "comp": "voc",

                    "value": 166

                },

                {

                    "comp": "pm25",

                    "value": 4

                },

                {

                    "comp": "lux",

                    "value": 961.4000244140625

                },

                {

                    "comp": "spl_a",

                    "value": 45.70000076293945

                }

            ],

            "indices": [

                {

                    "comp": "temp",

                    "value": -1

                },

                {

                    "comp": "humid",

                    "value": -2

                },

                {

                    "comp": "co2",

                    "value": 0

                },

                {

                    "comp": "voc",

                    "value": 0

                },

                {

                    "comp": "pm25",

                    "value": 0

                }

            ]

        },

        {

            "timestamp": "2019-04-10T11:40:03.413Z",

            "score": 87,

            "sensors": [

                {

                    "comp": "temp",

                    "value": 20.040000915527344

                },

                {

                    "comp": "humid",

                    "value": 34.630001068115234

                },

                {

                    "comp": "co2",

                    "value": 418

                },

                {

                    "comp": "voc",

                    "value": 169

                },

                {

                    "comp": "pm25",

                    "value": 5

                },

                {

                    "comp": "lux",

                    "value": 960.2000122070312

                },

                {

                    "comp": "spl_a",

                    "value": 46

                }

            ],

            "indices": [

                {

                    "comp": "temp",

                    "value": -1

                },

                {

                    "comp": "humid",

                    "value": -1

                },

                {

                    "comp": "co2",

                    "value": 0

                },

                {

                    "comp": "voc",

                    "value": 0

                },

                {

                    "comp": "pm25",

                    "value": 0

                }

            ]

        }]}



from pandas.io.json import json_normalize

import pandas as pd        


df = pd.DataFrame()

for each in data['data']:

    timestamp = each['timestamp']

    temp_df = json_normalize(data=each, record_path=['sensors']).T


    columns = list(temp_df.iloc[0])

    data_values = list(temp_df.iloc[1,:])


    temp_df = pd.DataFrame([data_values + [timestamp]], columns=columns + ['timestamp'])


    df = df.append(temp_df).reset_index(drop=True)




print(df)

輸出:


print(df)

        temp      humid    co2  ...         lux      spl_a                 timestamp

0  20.010000  34.490002  418.0  ...  961.400024  45.700001  2019-04-10T11:40:13.437Z

1  20.040001  34.630001  418.0  ...  960.200012  46.000000  2019-04-10T11:40:03.413Z


[2 rows x 8 columns]


查看完整回答
反對 回復 2022-01-05
  • 1 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號