首页 > 解决方案 > 如何在数据框中创建字典列表的值列表?

问题描述

我有一个数据框,每个单元格内都有一个字典列表。我正在尝试将字典的值提取为同一数据框的新列中的列表

我当前的数据框如下所示:

id             tags         
1         [{'tag':'happy'},
           {'tag':'sad'},
           {'tag':'ok'}]

2         [{'tag':'ok'},
           {'tag':'angry'},
           {'tag':'mad'}]

3         [{'tag':'content'},
           {'tag':'very mad'},
           {'tag':'alright'}]

我想要的数据框:

id           tags_new
1         ['happy', 'sad', 'ok']
2         ['ok', 'angry', 'mad']
3         ['content', 'very mad', alright']

我已经尝试了几个选项。

首先,我试过:

返回列表中字典值的列表

df=["tags"] = [y for x in df["tags"] for y in x.values()]

...这给了我:

SyntaxError: can't assign to literal

其次,我试过:

df["tags"] = [x in ["tag"] for x in df["tags"]]

...返回布尔值。

有什么建议么?这似乎需要一个快速修复,但它让我难住了。

标签: python-3.xlistdataframedictionary

解决方案


像这样的东西?

df = {
  1: [{'tag':'happy'},{'tag':'sad'},{'tag':'ok'}],
  2:[{'tag':'happy'},{'tag':'mad'},{'tag':'ok'}]
  }

for i in df:
  temp = []
  for j in df[i]:
    temp+=[j["tag"]]
  df[i]=temp

print(df)

推荐阅读