python - 将字典拆分为现有列
问题描述
假设我有数据框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)
推荐阅读
- vue.js - Vuejs Image 出现然后消失
- java - Java 或 Scala maven 使用 CLASSPATH 安装 jar
- java - 通过 GenericApplicationContext 注册 SpringBoot bean 不起作用
- mongodb - 如何在strapi上创建mongodb 2dsphere索引?
- typescript - 输入 graphql 解析器函数
- sql - 存储过程的字符串参数问题,该存储过程将数据从加载表带到临时表
- regex - 正则表达式查找每隔一个新行(仅匹配新行字符)
- ios - 如何在 iOS 中获取谷歌地图的快照
- c++ - 如何使用 std::istreambuf_iterator 初始化字符串
- python - 通过熊猫数据框重命名组中的计数列