我想提取Value
,其中Name
=Title
的字典中的键。
列名:title
输入:
name title
1 []
2 []
3 [{'Field': '4', 'Name': 'Title', 'Value': '32ff5a'}]
4 [{'Field': '6', 'Name': 'Company', 'Value': 'XYZ'}, {'Field': '1', 'Name': 'Title', 'Value': '0ac3c3327'}]
输出:
name title
1
2
3 32ff5a
4 0ac3c3327
我试着:
df.title = df['title'].apply(lambda x: x.get('Value')[0])
但是我得到了一个错误:
AttributeError: 'str' object has no attribute 'get'
尝试apply
与lambda
和生成器:
df['title'] = df['title'].apply(lambda x: next((y['Value'] for y in x if y['Name'] == 'Title'), ''))
>>> df
name title
0 1
1 2
2 3 32ff5a
3 4 0ac3c3327
>>>
编辑:
使用:
df['title'] = df['title'].apply(lambda x: next((y.get('Value', '') for y in x if y.get('Name') == 'Title'), ''))