熊猫排名基于列

时间:2020-04-21 18:27:50

标签: python pandas

这里是Python的新手,我想在数据框中创建一列,以根据其值对列进行排名。特别是在这种情况下,我有一个余额字段,并且我想将最高余额列为1,将第二最高余额列为2,依此类推。但是,当我尝试使用最小或密集或其他选项的排名功能时,它不会根据余额进行排名...我的尝试如下:

import pandas as pd

# Create a test df
df = pd.DataFrame({'Name': ['Bob','Carl','Doug','Edith','Ford','George']
                  , 'Bank Amt': ['17','123','144','2','63','25']
                  , 'Loan Amt': ['147','1523','1144','542','5463','2135']
                  })


df['Bank Amt Rank'] = df['Bank Amt'].rank(method='min', ascending=True)

df

输出:

enter image description here

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您的数据为string类型,您需要转换为数字类型:

df['Bank Amt'].astype(float).rank()

输出:

0    2.0
1    5.0
2    6.0
3    1.0
4    4.0
5    3.0
Name: Bank Amt, dtype: float64