从包含几行字典的列中提取值

时间:2020-06-15 13:35:08

标签: python pandas dataframe

我有一个嵌套的json文件,可以将其转换为Pandas Dataframe:

tabell = pd.DataFrame.from_records(r.response['trades'])

它看起来像这样:

id instrument price initialUnits  takeProfitOrder                                      
0 AUD_CAD  0.90  10000  NaN
1 AUD_CAD  0.89  10000  {'id': '379895', 'createTime': '2020-06-15T12:...

我想从内部字典中提取“ id”字段,并将其保留为该列中的值。

如果我写这个,它会起作用:

tabell.loc[1]['takeProfitOrder'] = tabell.loc[1]['takeProfitOrder']['id']

但是,我不知道哪几行。因此,我不想循环遍历。

但是,如果我只写那是我想要的,它将失败:

tabell['takeProfitOrder'] = tabell['takeProfitOrder']['id']

显然,它在第一行失败,因为它包含“ NaN”而不是字典。

最有效的方法是什么。此操作需要在相对较大的数据集上进行很多次。因此,我需要一种有效的方法来实现它。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用Series.str.get来处理缺失值:

tabell['takeProfitOrder'] = tabell['takeProfitOrder'].str.get('id')