例如,有一个像这样的pandax.DataFrame:
col_1 col_2
idx_1 493 47
idx_2 229 46435
idx_3 998 56
idx_4 209 45
idx_3 998 56
我希望找到一个易于转换为
的内容 col_1 col_2
idx_1 3 2
idx_2 2 4
idx_3 4 3
idx_4 1 1
idx_3 4 3
正如您所看到的,在每一列中,始终将最小值转换为1,然后将第二小值转换为2,依此类推第四,任何简单的方法来完成此操作?
答案 0 :(得分:0)
您可以使用rank:
df.rank(method="dense")
Out[8]:
col_1 col_2
idx_1 3.0 2.0
idx_2 2.0 4.0
idx_3 4.0 3.0
idx_4 1.0 1.0
idx_3 4.0 3.0
由于原始值是float类型,因此行列也是浮点数。如果您愿意,可以致电astype(int)
:
df.rank(method="dense").astype(int)
Out[9]:
col_1 col_2
idx_1 3 2
idx_2 2 4
idx_3 4 3
idx_4 1 1
idx_3 4 3