从Python数据框架中提取值

2024-06-09 08:42:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的pandas对象,我试图从中提取对应于每个键的值。你知道吗

{'attributes': {'type': 'Contact', 'url': '/services/data/v38.0/sobjects/Contact/0035B00000KRMhZQAX'}, 'Id': '0035B00000KRMhZQAX', 'Name': 'abc xyz', 'Id': 'hello00'}

预期产量:

Id : 0035B00000KRMhZQAX
Name : abc xyz
CustId : hello00

编辑的输入值:

{'attributes': {'type': 'Contact', 'url': '/services/data/v38.0/sobjects/Contact/0035B00000KRMhZQAX'}, 'Id': '0035B00000KRMhZQAX', 'Name': 'abc xyz', 'CustId': 'hello00'}

Tags: 对象nameidurlpandasdatatypeservice
1条回答
网友
1楼 · 发布于 2024-06-09 08:42:22

用途:

df = pd.DataFrame( {'col': {0: {'attributes': {'type': 'Contact', 'url': '/services/data/v38.0/sobjects/Contact/0035B00000KRMhZQAX'},
                                'Id': '0035B00000KRMhZQAX', 'Name': 'abc xyz', 'CustId': 'hello00'}}} )
df.loc[1, 'col'] = 10
df.loc[2, 'col'] = np.nan

print (df)
                                                 col
0  {'attributes': {'type': 'Contact', 'url': '/se...
1                                                 10
2                                                NaN

第一个仅使用字典筛选值:

df = df[df['col'].apply(lambda x: isinstance(x, dict))]
print (df)
                                                 col
0  {'attributes': {'type': 'Contact', 'url': '/se...

extract by key,如果key不存在,则添加None

df1 = pd.DataFrame([(x.get('Id', None), x.get('Name', None), x.get('CustId', None)) 
                    for x in df['col']], columns=['Id','Name','CustId'])
print (df1)
                   Id     Name   CustId
0  0035B00000KRMhZQAX  abc xyz  hello00

相关问题 更多 >