大熊猫拆开列表

庞2016

我遇到一个问题:

import pandas
data=pandas.DataFrame({'data1':[[('m',2)],[('n',3),('y',4)],[('x',3),('y',5)],[('m',3)]]},
       index=[['a','a','c','d'],[1,1,3,4]])

数据是这样的:

        data1
a   1   [(m, 2)]
    1   [(n, 3), (y, 4)]
c   3   [(x, 3), (y, 5)]
d   4   [(m, 3)]

我想要这样的结果:

       key  value
a   1   m   2
    1   n   3
    1   y   4
c   3   x   3
    3   y   5
d   4   m   3

谢谢!

耶斯列

您可以使用列表理解df通过元组创建,然后通过stack以下方式重塑

df = pd.DataFrame([dict(x) for x in data.data1], index=data.index)
print (df)
       m    n    x    y
a 1  2.0  NaN  NaN  NaN
  1  NaN  3.0  NaN  4.0
c 3  NaN  NaN  3.0  5.0
d 4  3.0  NaN  NaN  NaN

df = df.stack().astype(int).reset_index(level=2)
df.columns = ['key','value']
print (df)
    key  value
a 1   m      2
  1   n      3
  1   y      4
c 3   x      3
  3   y      5
d 4   m      3

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章