我有一个数据框,其中每个单元格内都有字典列表。我正在尝试将字典的值提取为同一数据帧的新列中的列表
我当前的数据框如下:
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"]]
...返回了布尔值。
有什么建议吗?这似乎需要快速解决,但让我感到困惑。
答案 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)