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

妈妈6

我有下面的数据框。我要排序的列'X'从数据框中d1和保持这个顺序YX值。然后创建一个新的数据框,称为df2进行排序的位置,但原始数据框应保持原样。

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

原始数据框

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

预期的DataFrame

   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_valuesDataFrame.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

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Pandas Python 中按两列对值进行排序

使用 Pandas 对两列进行排序

对pandas数据框中的多个文本列的值进行排序

根据列对数据框中的日期进行排序,并使用Pandas保持其他列的值

使用Python中的Pandas,如何按agg函数创建的两列进行排序?

对新数据中的列进行排序

如何根据行的排序值对pandas数据帧的每一行进行排序并返回列索引

通过在R和数字ir的两组中对列进行排序来排列数据帧

用R中的两个列因子对数据帧进行重新排序

Pandas - 根据列中的排序顺序拆分数据帧

对数据框进行排序并创建新的瞬时列

使用 r 中的 for 循环为列表中的每个数据框按升序对两列进行排序

应用自然排序,根据列对数据帧进行排序

使用其他两列对熊猫数据框中的列进行排序

在实体-属性-值架构中对两列进行排序

R在数据帧列表的每个数据帧中按字母顺序对列进行排序

按列中的名称对pandas DataFrame中的数据进行排序

对熊猫中的列值进行排序以创建备用序列

熊猫在两个具有相同列的数据帧中减去值创建新的数据帧来存储结果

如何在Pandas数据框中按行值对日期时间列进行排序?

对 Pandas 数据框中的特定列进行排序

根据列值对 Pandas Dataframe 进行排序

对R中的数据框进行排序(基于列值)

根据列中的值对数据表进行排序

如何基于列值拆分数据帧,对字符串值进行排序或分组依据?

使用数据帧中两列的组合创建字典列,然后使用公共键计算两列的值比率

以相反的顺序比较数据帧的列,并使用值为 0 的列的索引创建一个新列

是否有用于使用现有数据帧中的两列创建新数据帧的 R 函数?

根据两列进行排序并将值分配给新列