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、典型的なサンプリングはサンプリングに分ける
ランダムサンプリング行数の式:
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)
: