我有一个包含一列的数据框,其中每行都是字典列表。
| 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 但它似乎只适用于单个字典列表。
示例代码
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