python - 如何从DataFrame的rank方法中获取整数而不是 float

标签 python pandas dataframe

用相应的“排名”替换数字:

import pandas as pd
import numpy as np

numbers = np.random.random_integers(low=0.0, high=10000.0, size=(1000,)) 
df = pd.DataFrame({'a': numbers})
df['a_rank'] = df['a'].rank()

我将浮点值作为rank方法的默认输出类型:

987     82.0
988     36.5
989    526.0
990    219.0
991    957.0
992    819.5
993    787.5
994    513.0

我宁愿使用整数,而不是 float 。使用 asType(int) 对结果 float 值进行舍入会有风险,因为转换为 int 可能会引入 float 中的重复值彼此太接近的 值,例如 3.54.0。当转换为整数时,它们都会得到整数值 4

有没有办法引导rank方法输出整数?

最佳答案

上述解决方案对我来说不起作用。但以下确实有效。编辑的关键行是:

df['a_rank'] = df['a'].rank(method='dense').astype(int);

这可能是版本问题。

关于python - 如何从DataFrame的rank方法中获取整数而不是 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40249447/

相关文章:

python - 将散列分配给 Pandas 中的分类数据行

python - Django 多对多(通过),带有三个表和额外属性

python - 在导入 pandas 之前我需要导入 NumPy 还是可以单独使用 pandas ?

python - Pandas 在 groupby 之后获得整数键

python - 使用不同列类型创建 DataFrame 的有效方法

python - 尝试在包含 Pandas Dataframe 列(包含字符串)的 TFidfVectorizer 上应用 'fit_transform()' 时出现内存错误

python - 使用 python win32com outlook 选择 "From"字段

python 帮助。查找文件中的最大值并打印出带名称的值

python - Numpy 数组切片

python - Groupby-shift、保存列