假设我有数据框 pd.DataFrame({'a':nan, 'b':nan, 'c':{'a':1, 'b':2},{'a' :4, 'b':7, 'c':nan}, {'a':nan, 'b':nan, 'c':{'a':6, 'b':7}})
.我想从 c
列中的字典中的键中获取值,并将它们解析为键 a
和 b
。
预期输出是:
a b c
0 1 2 {'a':1, 'b':2}
1 4 7 nan
2 6 7 {'a':6, 'b':7}
我知道如何执行此操作来创建新列,但这不是我需要的任务,因为 a
和 b
有需要更新的相关信息 c
。我无法找到与此任务相关的任何内容。
任何有关有效方法的建议都将受到欢迎。
** 编辑 **
真正的问题是我有以下数据框,我将其简化为上面的内容(毫无疑问,在几个无关的步骤中):
a b c
0 nan nan [{'a':1, 'b':2}, {'a':6, 'b':7}]
1 4 7 nan
我需要按照尽可能少的步骤获得输出
a b c
0 1 2 {'a':1, 'b':2}
1 4 7 nan
2 6 7 {'a':6, 'b':7}
谢谢!
最佳答案
这有效:
def func(x):
d = eval(x['c'])
x['a'] = d['a']
x['b'] = d['b']
return x
df = df.apply(lambda x : func(x), axis=1)
关于python - 将字典拆分为现有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55006466/