如何在 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
我有一个 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