如何在数据框中创建字典列表的值列表?

时间:2019-08-26 19:12:22

标签: python-3.x list dataframe dictionary

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

我当前的数据框如下:

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']

我尝试了一些选择。

首先,我尝试过:

Return a list of values of dictionaries inside a list

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"]]

...返回了布尔值。

有什么建议吗?这似乎需要快速解决,但让我感到困惑。

1 个答案:

答案 0 :(得分:0)

像这样吗?

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)