Python | Sample larger than population or is negative エラーの原因と解決策

2023-02-26Python エラー,Python

Python | Sample larger than population or is negative エラーの原因と解決策

Pythonの実行時に発生するエラー「Sample larger than population or is negative」の原因と解決策について紹介しています。

ValueError: Sample larger than population or is negative
ValueError: サンプルが母集団よりも大きいか、または負である可能性があります。

確認環境

Windows11 ローカル
Python python-3.11.1

Sample larger than population or is negative エラーの原因

「Sample larger than population or is negative」というPythonの実行エラーは「random」モジュールのsample()関数を利用している場合に発生するエラーです。

例えば以下のような事がエラーの発生原因にあります。

  • sample()関数でランダムに取得しようとしている値の数がリストのデータ数より多い

Sample larger than population or is negative エラーの発生例と解決策

「Sample larger than population or is negative」エラーが発生するコード例とその解決策を紹介します。

sample()関数でランダムに取得しようとしている値の数がリストのデータ数より多い

「random」モジュールのsample()関数で第二引数に指定した取得数がリストの値の数より多いと「ValueError」を出力しますので注意が必要です。

import random

data_list = [60, 80, 10, 40, 50]

rand_data_list = random.sample(data_list, 6)

print(rand_data_list)
# ValueError: Sample larger than population or is negative

上記のコードエラーを解決するにはsample()関数の第二引数で指定している取得する値の数をリストの数より少なくする必要があります。

import random

data_list = [60, 80, 10, 40, 50]

rand_data_list = random.sample(data_list, 3)

print(rand_data_list)
# [40, 50, 60] ※結果例