首页 > 解决方案 > 如何在列中拆分 dict 类型的 pandas 列?

问题描述

我有一个熊猫数据框。数据框的其中一列是一个dict对象。以下数据框是真实数据框的玩具示例:

 DF = pd.DataFrame({'id':[1,2,3], 'col1':[{'a':1, 'b':2, 'c':3}, {'a':3, 'b':4, 'c':5}, {'a':None, 'b':5, 'c':6}]})

我想拆分col1列:每个字典键一列。所有行都有相同的键。

拆分后的数据框应如下所示:

id  a   b    c
1    1  2    3
2   3   4    5
3  None  5   6

注意:我dictjsonbpostgresql 中的列中获得了该列。

标签: pythonpandas

解决方案


输入:

df = pd.DataFrame({'id':[1,2,3], 'col1':[{'a':1, 'b':2, 'c':3}, {'a':3, 'b':4, 'c':5}, {'a':None, 'b':5, 'c':6}]})
df.set_index('id').col1.apply(pd.Series)

输出:

      a    b    c
id
1   1.0  2.0  3.0
2   3.0  4.0  5.0
3   NaN  5.0  6.0

推荐阅读