0 1 2
0 NaN NaN NaN
1 NaN NaN NaN
2 0.666667 0.333333 0.666667
3 1.000000 0.333333 1.000000
4 0.666667 1.000000 0.333333
5 0.333333 0.666667 0.666667
6 1.000000 0.333333 0.666667
7 0.333333 0.333333 1.000000
8 1.000000 0.666667 1.000000
9 0.666667 1.000000 0.666667
说明:
您的代码(非常好的可复制示例,顺便说一句!)引发了以下错误:
AttributeError: 'numpy.ndarray' object has no attribute 'rank'。
这意味着my_rank函数中的x被传递为numpy数组,而不是pandas系列。因此,首先我将return x.rank...更新为return pd.Series(x).rank..
然后我得到了以下错误:
TypeError: cannot convert the series to <class 'float'>
这是有意义的,因为pd.Series.rank接受一系列n个数字并返回一系列n个数字(排序)。但是,由于我们不是在一个序列上调用rank一次,而是在一个序列的滚动窗口上重复调用rank,因此每次滚动计算只需要一个数字作为输出。因此iloc[-1]
代码:
输出:
说明:
您的代码(非常好的可复制示例,顺便说一句!)引发了以下错误:
AttributeError: 'numpy.ndarray' object has no attribute 'rank'
。 这意味着my_rank
函数中的x
被传递为numpy数组,而不是pandas系列。因此,首先我将return x.rank...
更新为return pd.Series(x).rank..
然后我得到了以下错误:
TypeError: cannot convert the series to <class 'float'>
这是有意义的,因为pd.Series.rank
接受一系列n个数字并返回一系列n个数字(排序)。但是,由于我们不是在一个序列上调用rank一次,而是在一个序列的滚动窗口上重复调用rank,因此每次滚动计算只需要一个数字作为输出。因此iloc[-1]
相关问题 更多 >
编程相关推荐