как преобразовать словарь в датафрейм

Подскажите, как можно напечатать некоторые ключи этого словаря в датафрейм?
В первую очередь интересует как совместить ключи data и arg в одном датафрейме без фигурных скобок?

import pandas as pd


res = {
    "action": "snapshot",
    "arg": {
        "instType": "SPOT",
        "channel": "trade",
        "instId": "BTCUSDT"
    },
    "data": [
        {
            "ts": "1695709835822",
            "price": "26293.4",
            "size": "0.0013",
            "side": "buy",
            "tradeId": "1000000000"
        }
    ],
    "ts": 1695711090682
}
df = pd.json_normalize(res,'data','arg')
df

Результат должен выглядеть так:

ts                  price   size    side tradeId       arg.instId
0   1695709835822   26293.4 0.0013  buy 1000000000     BTCUSDT

Ответы (1 шт):

Автор решения: Алексей Р

В данном конкретном случае можно сделать так

df = pd.DataFrame(res["data"][0] | res['arg'], index=[0]).drop(columns=['instType', 'channel']).rename(columns={'instId':'arg.instId'})
              ts    price    size side     tradeId arg.instId
0  1695709835822  26293.4  0.0013  buy  1000000000    BTCUSDT

Или так:

df = pd.DataFrame(res["data"][0] | {'arg.instId': res['arg']["instId"]}, index=[0])

Еще вариант:

df = pd.json_normalize(res, 'data', 'arg').rename(columns={'arg':'arg.instId'})
df['arg.instId'] = df['arg.instId'].str['instId']
→ Ссылка