如何获取列表中的特定键以及列中的所有唯一字典值?

时间:2018-04-05 18:18:55

标签: json pandas indexing unique

我必须对一些json元数据进行排序,因此我使用panda.read_json来创建数据帧。 我打电话给df['tags']以获取我想要的列,但我不是从这里开始的最佳方式。

'tags'列中有174157个列表类型元素,每个列表中有17个词典。我想要的结果是字典中的唯一值,其中整个标记列的对应键为'name' :...

下面的图片是我拨打df[tag]时,我想要'name' :

中的所有唯一值

已编辑:实际上每行还有16个带有“名称”的字典,但由于...您没有看到它 enter image description here

1 个答案:

答案 0 :(得分:1)

假设您从

之类开始
df = pd.DataFrame({'a': [[{'name': 'foo'}, {'name': 'foo1'}], [{'name': 'bar'}]]})

然后你可以使用

names = pd.DataFrame(df.a.tolist()).applymap(lambda d: d.get('name', '') if isinstance(d, dict) else '')
>>> {i: names[i].unique() for i in names.columns}
{0: array(['foo', 'bar'], dtype=object), 1: array(['foo1', ''], dtype=object)}
  • pd.Dataframe(df.a.tolist())从元素中创建一个Dataframe。
  • applymap提取名称
  • dict comprehension找到了唯一的名字。