首页 > 解决方案 > 转换数据框列并保留原始数据

问题描述

如果我有一个包含 3 列 A、B、C 的数据框

是否可以获得这些列的排名,但保留原始列。

所以df

A   B   C
3   4   2
1   2   3

df.add_suffix('_Rank')=df.rank(axis=1)


A   B   C  A_Rank   B_Rank    C_Rank
3   4   2    2       3           1
1   2   3    1        2          3

标签: pandas

解决方案


在右侧使用joinwith :add_suffix

df = df.join(df.rank(axis=1).add_suffix('_Rank'))

_Rank为新列添加列名称:

df[df.columns + '_Rank'] = df.rank(axis=1)
print (df)
   A  B  C  A_Rank  B_Rank  C_Rank
0  3  4  2     2.0     3.0     1.0
1  1  2  3     1.0     2.0     3.0

推荐阅读