python - 使用 Pandas 数据框按排序顺序输出排名

标签 python pandas numpy

这是我的数据框。

Date        CA  KY  ID  CO
2003-01-31  5   -6   7   1
2003-02-28  6    2  -2  -5
2003-03-31  3   -8   4  -1

我想知道如何获得以下 DataFrame 作为输出。我知道这不是 argsort(),因为它按顺序给我索引。

Date        CA  KY  ID  CO
2003-01-31  2    0   3   1
2003-02-28  3    2   1   0
2003-03-31  2    0   3   1

如果我也想按降序排列它们,我该怎么做?我想列数减去数字列会起作用。

最佳答案

df.rank(axis=1, method='first')

返回:

             CA KY  ID  CO
Date                
2003-01-31  3.0 1.0 4.0 2.0
2003-02-28  4.0 3.0 2.0 1.0
2003-03-31  3.0 1.0 4.0 2.0

如果你想要完全一样,你可以这样做:

df.rank(axis=1, method='first') - 1

            CA  KY  ID  CO
Date                
2003-01-31  2.0 0.0 3.0 1.0
2003-02-28  3.0 2.0 1.0 0.0
2003-03-31  2.0 0.0 3.0 1.0

对于降序:

df.rank(axis=1, method='first', ascending=False)

关于python - 使用 Pandas 数据框按排序顺序输出排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63761339/

相关文章:

python - 在 python 中为 Tor 隐藏服务生成 private_key 和主机名

pandas - 在 Pandas 中获得最多三个计算

python - Numpy - 一维输入数组的多个 numpy.roll

python - gtk:检测点击 TreeView 中的单元格

Python os.path.join Linux 上的绝对路径

python - python模块是一等公民吗?

Python 的数学计算很奇怪,为什么会这样?

python - 根据 numpy 数组中的列值获取行号

python - 转置和分组 pandas 列

python - 有没有一种 pythonic 方法来获取可迭代中相同值的簇的开始和结束索引?