【问题标题】:How to set random seed for pd.util.testing.makeDataFrame()?如何为 pd.util.testing.makeDataFrame() 设置随机种子?
【发布时间】:2020-03-18 23:43:26
【问题描述】:

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

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

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

seed = 34

# python
import random
random.seed(seed)

# numpy
np.random.seed(seed)

我搜索了 SO 无济于事。

【问题讨论】:

标签: python pandas


【解决方案1】:

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

This SO answer 帮助确认。

【讨论】:

    【解决方案2】:

    如果你想使用 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 2021-03-23
      • 2014-11-21
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多