13、pythonデータのランダムサンプリング、比例、階層サンプリング

1062 ワード

ランダムサンプリング:一定の行数または割合でデータの抽出を行う
ランダムサンプリング行数の式:
DataFrame.sample(n,frac,replace=False)
n個数サンプリングfracパーセントサンプリングreplaceはサンプリングに戻すかどうか、デフォルトfalseは戻さない
import numpy
#ランダムシードseed()を設定乱数生成時に使用するアルゴリズムの整数値を指定します.#同じseed()値を使用すると、生成されるたびに定数が同じになります.#この値を設定しない場合、システムは時間に応じてこの値を自分で選択します.この場合、生成されるたびに乱数は時間の違いによって異なります.
numpy.random.seed(seed=2)
1、個数によるサンプリング
data.sample(n=10)
2、百分率によるサンプリング
data.sample(frac=0.02)
3、戻したサンプリングがあり、同じデータを2回抽出する可能性がある
data.sample(n=10,replace=True)
4、典型的なサンプリングはサンプリングに分ける
numpy.random.seed(seed=2) #        seed( ) ,            ,

#  groupby       ,    

gbr=data.groupby('class')

#      gbr   

gbr.groups

#            :    

typicalNDict={
        1:2,
        2:4,
        3:6
        }

#    

def typicalsamling(group,typicalNDict):
    name=group.name
    n=typicalNDict[name]
    return group.sample(n=n)

result=data.groupby(
        'class',group_keys=False
        ).apply(typicalsamling,typicalNDict)

   
       :