如何从大熊猫的字典列中提取值?

埃文·布里顿

我在每列 {'value': 2343} 中有一个包含字典的数据框。我试图摆脱字典并将单元格设置为等于数据框中所有字典的值。

import pandas as pd
df = pd.DataFrame([
    {'node': 'A', 'read': {'value': 2343}, 'write': {'value': 23}},
    {'node': 'B', 'read': {'value': 334}, 'write': {'value': 233444}},
])

我可以将单元格设置为一列的值:

df['read'] = df['read'].apply(lambda x: x['value'])

有没有办法对数据框中的所有列执行此操作?我应该遍历所有列吗?

预期的输出应该是一个数据框:

df = pd.DataFrame([
    {'node': 'A', 'read': 2343, 'write': 23},
    {'node': 'B', 'read': 334, 'write': 233444},
])
奥利弗·斯科特

您可以使用applymap

import pandas as pd
df = pd.DataFrame([
    {'node': 'A', 'read': {'value': 2343}, 'write': {'value': 23}},
    {'node': 'B', 'read': {'value': 334}, 'write': {'value': 233444}},
])

cols = ['read', 'write']
df[cols] = df[cols].applymap(lambda x: x['value'])

print(df)

[Out]:

  node  read   write
0    A  2343      23
1    B   334  233444

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章