我有一个带有嵌套列表的python字典,我想变成一个熊猫DataFrame
a = {'A': [1,2,3], 'B':['a','b','c'],'C':[[1,2],[3,4],[5,6]]}
我希望最终的DataFrame看起来像这样:
> A B C
> 1 a 1
> 1 a 2
> 2 b 3
> 2 b 4
> 3 c 5
> 3 c 6
当我使用DataFrame命令时,它看起来像这样:
pd.DataFrame(a)
> A B C
>0 1 a [1, 2]
>1 2 b [3, 4]
>2 3 c [5, 6]
无论如何,我是否会使用C元素使数据变长?
这是我想出的:
In [53]: df
Out[53]:
A B C
0 1 a [1, 2]
1 2 b [3, 4]
2 3 c [5, 6]
In [58]: s = df.C.apply(Series).unstack().reset_index(level=0, drop = True)
In [59]: s.name = 'C2'
In [61]: df.drop('C', axis = 1).join(s)
Out[61]:
A B C2
0 1 a 1
0 1 a 2
1 2 b 3
1 2 b 4
2 3 c 5
2 3 c 6
apply(Series)
给我一个有两列的DataFrame。为了在保持原始索引的同时将它们合并为一个,我使用unstack
。reset_index
删除索引的第一级,该索引基本上将值保留在C中的原始列表中。然后,我将其重新加入df中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句