从熊猫数据框中的字典列表中获取值

时间:2020-03-07 14:50:19

标签: python pandas

好的,所以我有一个数据框。 “ z”列的每个元素都是字典列表。

例如,列“ z”的第二行如下所示:

[ {'name': 'Tom', 'hw': [180, 79]},
  {'name': 'Mark', 'hw': [119, 65]} ]

我希望它只包含'name'值,在这种情况下,元素将是Tom和Mark而没有'hw'值。

我尝试将其转换为列表,然后删除第二个元素,但是我丢失了来自同一行的值。并非每一行都具有相同数量的元素,有些具有2个名称,有些可能具有4个。

2 个答案:

答案 0 :(得分:4)

list comprehensiondict.get结合使用的一种方法:

示例

df = pd.DataFrame({'z': [[{'name': 'Tom', 'hw': [180, 79]},
                         {'name': 'Mark', 'hw': [119, 65]}]]})

df['name'] = [[d.get('name') for d in x] for x in df['z']]

[出]

                                                   z         name
0  [{'name': 'Tom', 'hw': [180, 79]}, {'name': 'M...  [Tom, Mark]

答案 1 :(得分:4)

让我们使用series.str.get来使用pandas get

df['name']=df.col.str.get('name')
df
                                 col  name
0   {'name': 'Tom', 'hw': [180, 79]}   Tom
1  {'name': 'Mark', 'hw': [119, 65]}  Mark