Python 基于列的熊猫排名

Python 基于列的熊猫排名,python,pandas,Python,Pandas,这里是Python新手,我希望在我的数据框架中创建一个列,根据其值对列进行排序。特别是在这种情况下,我有一个平衡字段,我想把最高的平衡列为1,第二高的平衡列为2,依此类推。然而,当我尝试使用秩函数,最小或密集或任何其他选项时,它不会根据平衡进行排序。。。我的尝试如下: import pandas as pd # Create a test df df = pd.DataFrame({'Name': ['Bob','Carl','Doug','Edith','Ford','George']

这里是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
输出:

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


非常感谢您的帮助。

您的数据是
字符串
类型,您需要转换为数字类型:

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

我看不出有任何理由否决这个问题。这个问题用代码解释得很好。啊,是的,它与数据类型是字符串有关。非常感谢。