如何为pd.util.testing.makeDataFrame()设置随机种子?

时间:2019-11-22 21:38:12

标签: python pandas

编辑:我发现问题与Jupyter笔记本有关。我无法全局设置种子,并且每次运行都无法获得相同的结果。我必须使用pd.util.testing.makeDataFrame()在代码单元中设置随机种子。

原始问题: 我正在尝试设置随机状态,以便获得使用熊猫的pd.util.testing.makeDataFrame()制作的DataFrame的可复制结果。

我为Python和NumPy设置了随机种子。我可以设置另一个随机种子来获得可重复的结果吗?

seed = 34

# python
import random
random.seed(seed)

# numpy
np.random.seed(seed)

我没有找到搜索结果。

2 个答案:

答案 0 :(得分:1)

如果要对随机种子使用panda的测试框架,请尝试以下操作:

from numpy import random, prod, str_
from numpy.random import randn
import pandas.util.testing as test
from pandas import DataFrame, Series


def rand_df(N=30, K=4, seed=0, nchars=10):

    random.seed(seed)
    index = (
        random.choice(test.RANDS_CHARS, size=nchars * prod(N))
        .view((str_, nchars))
        .reshape(N)
    ).astype('O')

    return DataFrame({c: Series(randn(N), index=index) for c in test.getCols(K)})


a = rand_df()
b = rand_df()
print(a == b)

答案 1 :(得分:1)

我发现问题与Jupyter笔记本有关。我无法全局设置笔记本的种子,并且每次运行都无法获得相同的结果。我必须使用pd.util.testing.makeDataFrame()在代码单元中设置随机种子。

This SO answer帮助确认。