python - 将字典拆分为现有列

标签 python pandas parsing dictionary

假设我有数据框 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 列中的字典中的键中获取值,并将它们解析为键 ab

预期输出是:

   a                   b                  c
0  1                   2      {'a':1, 'b':2}
1  4                   7                 nan
2  6                   7      {'a':6, 'b':7}

我知道如何执行此操作来创建新列,但这不是我需要的任务,因为 ab 有需要更新的相关信息 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/

相关文章:

python - 将多个 csv 文件读取到 HDF5 时,Pandas ParserError EOF 字符

python - 如何在 pyglet/pyopengl 中使用透明层而不是纯色来清除屏幕

python - buildout 似乎没有正确执行 setup.py

python - 提取 numpy 结构化数组的最高值

excel - VBA XML : Find root nodes for multiple namespaces

python - 如何避免 for 循环并正确迭代 pandas 数据框?

python - 从 Pandas 中的 DatetimeIndex 列出月份和年份

python - 如何获取数据帧的子组开始完成索引

python - 将具有不同名称的多个列堆叠到一个巨大的数据框中

android - 如何在没有成员标签的情况下将 JsonElement 转换为 Json?