我在每列 {'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] 删除。
我来说两句