将数据框中的字典列表转换为单独的数据框

时间:2019-02-15 06:15:21

标签: pandas list dictionary

要将数据集中已经存在的字典列表转换为数据框。 数据集看起来像这样。

[{'id':35,'name':'Comedy'}]

如何将字典列表转换为数据框?

谢谢您的时间!

我要检索:

喜剧

从字典列表中。

1 个答案:

答案 0 :(得分:0)

使用:

df = pd.DataFrame({'col':[[{'id': 35, 'name': 'Comedy'}],[{'id': 35, 'name': 'Western'}]]})
print (df)
                               col
0   [{'id': 35, 'name': 'Comedy'}]
1  [{'id': 35, 'name': 'Western'}]

df['new'] = df['col'].apply(lambda x: x[0].get('name'))
print (df)
                               col      new
0   [{'id': 35, 'name': 'Comedy'}]   Comedy
1  [{'id': 35, 'name': 'Western'}]  Western

如果可能,列表中有多个dict

df = pd.DataFrame({'col':[[{'id': 35, 'name': 'Comedy'}, {'id':4, 'name':'Horror'}],
                          [{'id': 35, 'name': 'Western'}]]})
print (df)
                                                 col
0  [{'id': 35, 'name': 'Comedy'}, {'id': 4, 'name...
1                    [{'id': 35, 'name': 'Western'}]

df['new'] = df['col'].apply(lambda x: [y.get('name') for y in x])
print (df)
                                                 col               new
0  [{'id': 35, 'name': 'Comedy'}, {'id': 4, 'name...  [Comedy, Horror]
1                    [{'id': 35, 'name': 'Western'}]         [Western]

如果要提取所有值:

df1 = pd.concat([pd.DataFrame(x) for x in df['col']], ignore_index=True)
print (df1)
   id     name
0  35   Comedy
1   4   Horror
2  35  Western