gpt4 book ai didi

python - 对两列进行排序并使用 pandas 为数据框中的排序值创建新列

转载 作者:行者123 更新时间:2023-12-01 07:04:54 27 4
gpt4 key购买 nike

我有以下数据框。我想对数据帧 d1 中的列 'X' 进行排序,并根据 X 值保持顺序 Y 。然后创建一个名为 df2 的新数据框,其中已完成排序,但原始数据框应保持原样。

import pandas as pd
d1 = {'X':[4,3,5,6], 'Y':[0.5,0.7,0.2,0.9]}
df= pd.DataFrame(d1)

原始数据框

   X    Y
0 4 0.5
1 3 0.7
2 5 0.2
3 6 0.9

预期数据框

   X    Y  X_Sorted  Y_Sorted
0 4 0.5 6 0.9
1 3 0.7 5 0.2
2 5 0.2 4 0.5
3 6 0.9 3 0.7

此处 Y_Sorted 根据 X 值的索引。

Y 值将与 x_sorted 值保持相同。

最佳答案

使用DataFrame.sort_values , DataFrame.add_suffix ,创建默认索引和最后一个 concat :

df1 = (df[['X','Y']].sort_values('X', ascending=False)
.add_suffix('_sorted')
.reset_index(drop=True))
df = pd.concat([df, df1], axis=1)
print (df)
X Y X_sorted Y_sorted
0 1 0.5 6 0.9
1 3 0.7 5 0.2
2 5 0.2 3 0.7
3 6 0.9 1 0.5

关于python - 对两列进行排序并使用 pandas 为数据框中的排序值创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58485037/

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