Python 从包含几行DICT的列中提取值

Python 从包含几行DICT的列中提取值,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个嵌套的json文件,我将其转换为数据帧: 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', '

我有一个嵌套的json文件,我将其转换为数据帧:

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:...
我想从内部dict中提取'id'字段,并将其保留为该列中的值

如果我写这篇文章,它会起作用:

tabell.loc[1]['takeProfitOrder'] = tabell.loc[1]['takeProfitOrder']['id']
但是,我不知道是哪一行,而且是几千行。因此,我不想使用循环进行迭代

但如果我只是写,这就是我想要的,它失败了:

tabell['takeProfitOrder'] = tabell['takeProfitOrder']['id']
显然,它在第一行失败,因为它包含“NaN”而不是dict

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

有什么建议吗?

用于处理可能丢失的值:

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

谢谢这很有效。我已经尝试过tabell['takeProfitOrder']=tabell['takeProfitOrder'].get('id'),但它不起作用。没有考虑到.strFirst time saw.str.get的作用。好东西,干杯