gpt4 book ai didi

python - pandas 取消列表的堆叠

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:36 24 4
gpt4 key购买 nike

我遇到一个问题:

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 进行 reshape :

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

关于python - pandas 取消列表的堆叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42713161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com