简体   繁体   English

从作为字典的 Pandas 列中提取值

[英]Extracting value from a Pandas column that is a dictionary

I have a Dataframe in the below format:我有一个 Dataframe 格式如下:

id, value
101, [{'id': 'ZWJ', 'type': 'user_reference', 'summary': 'Person 1'}]
102, [{'id': 'ZWS', 'type': 'user_reference', 'summary': 'Person 2'}]

I am trying to extract the value tagged to summary in each row.我正在尝试提取每行中标记为摘要的值。

Expected output:预期 output:

id, name
101, Person 1
102, Person 2

Use str[0] for get first list and then Series.str.get for value summary :使用str[0]获取第一个列表,然后Series.str.get获取值summary

df['name'] = df['value'].str[0].str.get('summary')

print (df)
    id                                              value      name
0  101  [{'id': 'ZWJ', 'type': 'user_reference', 'summ...  Person 1
1  102  [{'id': 'ZWS', 'type': 'user_reference', 'summ...  Person 2

Details :详情

print (df['value'].str[0])
0    {'id': 'ZWJ', 'type': 'user_reference', 'summa...
1    {'id': 'ZWS', 'type': 'user_reference', 'summa...
Name: value, dtype: object

Got this fixed by解决了这个问题

df['name'] = df.value(operator.itemgetter(0)).apply(operator.itemgetter('summary'))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM