如何在 pandas 列的列表中展平多个字典对象?

How to flatten multiple dictionary objects inside a list in pandas column?

我有一个 df,它的列如下所示:

col1

[{'value':'2019-02-02'},{'value':'test1'},{'value':'test2'},{'value':'test3'},{'value':'test4'},{'value':'test5'},{'value':'test6'}]

如何将此列展平,使其看起来像这样:

col1         col2
value        2019-02-02
value        test1
value        test2
value        test3
value        test4
value        test5
value        test6

我正在尝试这个:

df['Col1'] = [x[0]['value'] for x in df['Col1']]

这只是在所有嵌套字典中选择第一个值并像这样生成 df:

col1
2019-02-02
2019-02-02
2019-02-02
2019-02-02

使用 tolist 然后我们需要 concat 每个 pd.DataFrame(sublist)

pd.concat([pd.DataFrame(sublist) for sublist in df.col1.tolist()]).stack().reset_index(level=1)
Out[22]: 
  level_1           0
0   value  2019-02-02
1   value       test1
2   value       test2
3   value       test3
4   value       test4
5   value       test5
6   value       test6
0   value  2019-02-02
1   value       test1
2   value       test2
3   value       test3
4   value       test4
5   value       test5
6   value       test6