用相应的“等级”替换数字:
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
而不是floats
我宁愿拥有整数。使用float
舍入生成的asType(int)
值会有风险,因为转换为int
可能会导致float
值彼此过于接近的重复值,例如{ {1}}和3.5
。转换为整数的那些将导致整数值4.0
。
有没有办法引导4
方法输出整数?
答案 0 :(得分:2)
传递参数if(!isset($_GET['id'])) {
die();
}
$ID = (int)$_GET['id'];
$myfile = fopen("test1.txt", "a") or die();
$txt = $ID . " - " .time() . "\n";
fwrite($myfile, $txt);
fclose($myfile);
,这会使各组之间的排名增加method='dense'
,请参阅docs:
1
答案 1 :(得分:0)
上述解决方案不适用于我。以下确实可以工作。进行编辑的关键行是:
df['a_rank'] = df['a'].rank(method='dense').astype(int);
这可能是版本问题。
答案 2 :(得分:0)
无需使用 method='dense',只需转换为整数即可。
df['a_rank'] = df['a'].rank().astype(int)