如何在DataFrame中修改dictonaries?

时间:2017-04-30 18:18:11

标签: python pandas dictionary dataframe

如何修改数据框内的列表值?我正在尝试调整JSON收到的数据,DataFrame如下:

Dataframe df:
    id    options
0    0     [{'a':1 ,'b':2, 'c':3, 'd':4}]
1    1     [{'a':5 ,'b':6, 'c':7, 'd':8}] 
2    2     [{'a':9 ,'b':10, 'c':11, 'd':12}]

如果我只想在选项中使用'a'和'c'键/值,我该如何修改数据名?预期结果将是:

Dataframe df:
    id    options
0    0     [{'a':1 ,'c':3}]
1    1     [{'a':5 ,'c':7}] 
2    2     [{'a':9 ,'c':11}]

2 个答案:

答案 0 :(得分:0)

这是一个使用列表理解来创建仅包含特定键的新词典的示例:

df['options'] = [[{'a': x[0]['a'], 'c': x[0]['c']}] for x in df['options']]

答案 1 :(得分:0)

你可以apply修改条目的函数:

>>> df.options = df.options.apply(lambda x: [{k: v for k, v in x[0].items() if k in ('a', 'c')}])
>>> df
   id              options
0   0   [{'a': 1, 'c': 3}]
1   1   [{'a': 5, 'c': 7}]
2   2  [{'a': 9, 'c': 11}]