私はパンダを使用していますが、私は約4百万の観測データを持っています。 各クラス(クラスは単なる列)の50個のランダム要素または最初の50個の要素を選択するには、最高/最速/最も効率的な方法が何であるか疑問に思っていました。各クラスのn要素の選択
私の列の一意のクラス数は約2kで、100,000要素、各クラスごとに50要素のサブセットを選択したいと思います。
私はそれらをクラスにグループ化し、次に各グループを繰り返し、最初の50要素を選択してから次のグループに進むことを考えていました。
私はこれを行うより良い方法があるのだろうか?
答えていただきありがとうございます。しかし、指定されたSamplesizeより小さい観測数のクラスがある場合、私はその解決策を使用できません。 ValueError: 'replace = False'のとき、人口より大きなサンプルを取ることはできません。 – sebb
print df.groupby( 'class'、as_index = False).apply(lambda array:array.loc [np.random.choice(array.index) 、Samplesize、True)、:]) これは、Trueのときにサンプルが重複する可能性があることを覚えておいてください。 – Shijo
@sebbあなたは、各クラスの要素を50個必要としました。クラスの要素が50個未満の場合は、それを持つことはできませんので、例外を発生させることは適切なことと思われます。 – Goyo