从包含字典列表的系列创建数据框

问题描述 投票:0回答:1

我有一个包含一列的数据框,其中每行都是字典列表。

 | Column A | 
1| [{'A':1, 'B':2}] | 
2| [{'A':3, 'B':4}, {'A':5, 'B':6}] | 
...

如何从该系列中创建另一个数据框?

  | A | B |
  | - | - |
1 | 1 | 2 |
2 | 3 | 4 |
  | 5 | 6 |
... 

我尝试过 pd.DataFrame 但它似乎只适用于单个字典列表。

python pandas dataframe
1个回答
0
投票

示例代码

df = pd.DataFrame({'colA': [{'A':1, 'B':2}, [{'A':3, 'B':4}, {'A':5, 'B':6}]]})

df

    colA
0   {'A': 1, 'B': 2}
1   [{'A': 3, 'B': 4}, {'A': 5, 'B': 6}]

代码

out = (pd.concat([df[cond1].explode('colA'), df[~cond1]])
         .sort_index()
         .reset_index()
         .pipe(lambda x: x[['index']].join(pd.json_normalize(x['colA'])))
)

    index   A   B
0   0       1   2
1   1       3   4
2   1       5   6
© www.soinside.com 2019 - 2024. All rights reserved.