熊猫排名函数产生非整数?

问题描述 投票:3回答:2

是否有任何条件会使pandas数据框函数rank返回整数的混合物,并在其返回值中浮点数,或者输出始终保证为1 ... N个整数?

python pandas dataframe
2个回答
9
投票
如@TomAugspurger所指示。如果它们是重复项,则它们可以是非整数。 (但是无论如何都是float64 dtype的。)>

In [7]: DataFrame({'A' : Series([1,2,3,4]), 'B' : Series([1,1,1,1]) }).rank() Out[7]: A B 0 1 2.5 1 2 2.5 2 3 2.5 3 4 2.5 [4 rows x 2 columns] In [8]: DataFrame({'A' : Series([1,2,3,4]), 'B' : Series([1,1,1,1]) }).rank().dtypes Out[8]: A float64 B float64 dtype: object

几个等级选项

In [12]: DataFrame({'A' : Series([1,2,3,4]), 'B' : Series([1,1,1,1]) }).rank(method='min') Out[12]: A B 0 1 1 1 2 1 2 3 1 3 4 1 [4 rows x 2 columns] In [13]: DataFrame({'A' : Series([1,2,3,4]), 'B' : Series([1,1,1,1]) }).rank(method='max') Out[13]: A B 0 1 4 1 2 4 2 3 4 3 4 4 [4 rows x 2 columns] In [14]: DataFrame({'A' : Series([1,2,3,4]), 'B' : Series([1,1,1,1]) }).rank(method='first') Out[14]: A B 0 1 1 1 2 2 2 3 3 3 4 4 [4 rows x 2 columns]


0
投票
我发现上面的代码产生了一个浮动解决方案。可能是熊猫版本问题或其他版本问题。正如解决方案多样性的附录一样,以下操作也有效。
热门问题
推荐问题
最新问题