繁体   English   中英

python 嵌套字典到 pandas DataFrame

[英]python nested dictionary to pandas DataFrame

main_dict = {
'NSE:ACC': {'average_price': 0,
             'buy_quantity': 0,
             'depth': {'buy': [{'orders': 0, 'price': 0, 'quantity': 0},
                               {'orders': 0, 'price': 0, 'quantity': 0},
                               {'orders': 0, 'price': 0, 'quantity': 0},
                               {'orders': 0, 'price': 0, 'quantity': 0},
                               {'orders': 0, 'price': 0, 'quantity': 0}],
                       'sell': [{'orders': 0, 'price': 0, 'quantity': 0},
                                {'orders': 0, 'price': 0, 'quantity': 0},
                                {'orders': 0, 'price': 0, 'quantity': 0},
                                {'orders': 0, 'price': 0, 'quantity': 0},
                                {'orders': 0, 'price': 0, 'quantity': 0}]},
             'instrument_token': 5633,
             'last_price': 2488.9,
             'last_quantity': 0,
             'last_trade_time': '2022-09-23 15:59:10',
             'lower_circuit_limit': 2240.05,
             'net_change': 0,
             'ohlc': {'close': 2555.7,
                      'high': 2585.5,
                      'low': 2472.2,
                      'open': 2575},
             'oi': 0,
             'oi_day_high': 0,
             'oi_day_low': 0,
             'sell_quantity': 0,
             'timestamp': '2022-09-23 18:55:17',
             'upper_circuit_limit': 2737.75,
             'volume': 0},
}

将字典转换为 pandas dataframe

例如:

交易品种 last_price net_change 开盘 高 低 收盘
NSE:ACC 2488.9 0 2575 2585.5 2472.2 2555.7

我正在尝试 pd.DataFrame.from_dict(main_dict) 但它不起作用。 请给出最好的建议。

我将首先 select 从您的 dict 中获取必要的数据,然后将其作为输入传递给pd.DataFrame()

df_input = [{
    "symbol": symbol,
    "last_price": main_dict.get(symbol).get("last_price"),
    "net_change": main_dict.get(symbol).get("net_change"),
    "open": main_dict.get(symbol).get("ohlc").get("open"),
    "high": main_dict.get(symbol).get("ohlc").get("high"),
    "low": main_dict.get(symbol).get("ohlc").get("low"),
    "close": main_dict.get(symbol).get("ohlc").get("close")
} for symbol in main_dict]

import pandas as pd
df = pd.DataFrame(df_input)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM