将字典列表的字典转换为 pandas DataFrame

我从 RobinHoood 函数中提取了 AAPL 历史期权价格列表robin_stocks.get_option_historicals()。数据以字典列表的形式返回,如下所示。


我在将以下对象(名为historicalData)转换为DataFrame. 有人可以帮忙吗?


historicalData = {'data_points': [{'begins_at': '2020-10-05T13:30:00Z',

   'open_price': '1.430000',

   'close_price': '1.430000',

   'high_price': '1.430000',

   'low_price': '1.430000',

   'volume': 0,

   'session': 'reg',

   'interpolated': False},

{'begins_at': '2020-10-05T13:40:00Z',

   'open_price': '1.430000',

   'close_price': '1.340000',

   'high_price': '1.440000',

   'low_price': '1.320000',

   'volume': 0,

   'session': 'reg',

   'interpolated': False}],

'open_time': '0001-01-01T00:00:00Z',

'open_price': '0.000000',

'previous_close_time': '0001-01-01T00:00:00Z',

'previous_close_price': '0.000000',

'interval': '10minute',

'span': 'week',

'bounds': 'regular',

'id': '22b49380-8c50-4c76-8fb1-a4d06058f91e',

'instrument': 'https://api.robinhood.com/options/instruments/22b49380-8c50-4c76-8fb1-a4d06058f91e/'}

我尝试了下面的代码,但这没有帮助:


import pandas as pd

df = pd.DataFrame(historicalData)

df


繁花不似锦
浏览 98回答 2
2回答

互换的青春

您没有写到您只需要 data_points(如另一个答案中所示),所以我假设您希望将整个字典转换为 DataFrame。为此,请从您的代码开始:df = pd.DataFrame(historicalData)它创建一个 DataFrame,其中data_points “分解”为连续行,但它们仍然是字典。然后将open_price列重命名为open_price_all:df.rename(columns={'open_price': 'open_price_all'}, inplace=True)原因是为了避免在不久执行连接后出现重复的列名称 (data_points还包含open_price属性,我希望data_points 中的相应列 “继承”此名称)。下一步是创建一个临时 DataFrame - 将data_points中的字典拆分为各个列:wrk = df.data_points.apply(pd.Series)打印wrk查看结果。最后一步是将df与wrk连接并删除 data_points列(不再需要,因为它被分成单独的列):result = df.join(wrk).drop(columns=['data_points'])

慕少森

通过下面的内容很容易解决这个问题。我已通过列表理解将数据框放入列表中import pandas as pddf_list = [pd.DataFrame(dic.items(), columns=['Parameters', 'Value']) for dic in historicalData['data_points']]然后你可以这样做:df_list[0]这将产生     Parameters                 Value0     begins_at  2020-10-05T13:30:00Z1    open_price              1.4300002   close_price              1.4300003    high_price              1.4300004     low_price              1.4300005        volume                     06       session                   reg7  interpolated                 False
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python