gpt4 book ai didi

python - 转置数据框和排序

转载 作者:行者123 更新时间:2023-11-28 22:38:53 28 4
gpt4 key购买 nike

我有一个像这样的 df(数据代表一个矩阵):

           Arnston    Berg    Carlson
Arnston 0.00 1.00 2.00
Berg 1.00 0.00 3.00
Carlson 2.00 3.00 0.00

我想转置它,以便链接行名和列名,并将它们的关联值显示为一个新列,并按从小到大的顺序排序。我只需要保留一个行-列组合,因为它们总是相同的(例如 Arnston, Berg == 1.00 和 Berg, Arnston == 1.00)

我想要的输出是:

Arnston, Arnston   0.00
Berg, Berg 0.00
Carlson, Carlson 0.00
Arnston, Berg 1.00
Arnston, Carlson 2.00
Berg, Carlson 3.00

我希望这是有道理的。

最佳答案

Pandas melt功能很棒。

在:

df = df.reset_index() #Make your index into a column
df = pd.melt(df, id_vars = ['index']) #Reshape data
df = df[df['index'] <= df['variable']].sort_values(by = 'value') #Remove duplicates, sort
df ['col'] = df['index'] +','+ df['variable'] #Concatenate strings
df = df[['col','value']] #Remove unnecessary columns
df = df.set_index('col') #Set strings to index
df

输出:

                value
col
Arnston,Arnston 0
Berg,Berg 0
Carlson,Carlson 0
Arnston,Berg 1
Arnston,Carlson 2
Berg,Carlson 3

关于python - 转置数据框和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35300343/

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