gpt4 book ai didi

python - 在 Dataframe 中使用多列进行排名

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:58 25 4
gpt4 key购买 nike

我有一个包含 3 列的数据框

Alpha Bravo Charlie
20 30 40
50 10 20
40 60 10

我希望创建 3 个新的列,其排名产生以下结果,使 3 列中最高的排名为 3 比 1:

AlphaRank BravoRank CharlieRank
1 2 3
3 1 2
2 3 1

我知道有 dataframe.rank 函数,但我只看到了 1 列而不是 3 列的示例

我试过这个有问题:

for newrank in ['Alpha', 'Bravo', 'Charlie']:
ranksys = df[newrank]

ranksystem = newrank +'Rank'
df[ranksystem] = ranksys.rank(axis=1).astype(int)

最佳答案

我认为需要rank + astype :

cols = ['Alpha', 'Bravo', 'Charlie']
df[cols] = df[cols].rank().astype(int)
print (df)
Alpha Bravo Charlie
0 1 2 3
1 3 1 2
2 2 3 1

numpy.argsort 替代 Numpy :

df[cols] = pd.DataFrame(df[cols].values.argsort(axis=0) + 1,index=df.index,columns=df.columns)

关于python - 在 Dataframe 中使用多列进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49462115/

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