上下文:
我试图了解python (3.7.3) (0.24.2)中top
的属性是如何工作的。describe()
pandas
迄今为止的努力:
我查看了pandas.DataFrame.describe的文档。它指出:
如果多个对象值具有最高计数,则将从具有最高计数的那些中任意选择计数和顶部结果。
我试图了解代码的哪一部分完全归因于“任意”输出。
我进入了
describe
依次调用的代码。我的回溯如下:
describe() #pandas.core.generic
describe_1d() #pandas.core.generic
describe_categorical_1d() #pandas.core.generic
value_counts() #pandas.core.base
value_counts() #pandas.core.algorithms
_value_counts_arraylike() #pandas.core.algorithms
# In the above step it uses hash-table, to find keys and their counts
# I am not able to step further, as further implementations are in C.
样品试用:
import pandas as pd
sample = pd.Series(["Down","Up","Up","Down"])
sample.describe()["top"]
如预期的那样,上面的代码可以给出Down
或随机给出。Up
问题:
- 回溯中的哪种方法有助于输出的随机性?
从哈希表获得的键的顺序是原因吗?
如果是,
-- 不是每次,相同的键具有相同的哈希值并以相同的顺序获取吗?
-- 如何对键进行散列、迭代(用于获取所有键)和从散列表中获取?
非常感谢任何指针!提前致谢 :)