( New ) 新連載スタート!2人の会話形式でPythonを学ぶ「週末Pythonゆる講座」はこちら ▶▶

【Python】sample|ランダムにデータを抽出する

ランダムにデータを抽出する

ランダムにデータを抽出するには、sampleという手法を利用します

headは最初の5行を、tailは最後の5行を抽出するのに対し、sampleはランダムな行を取得します

Pythonのheadとtailのイメージ

事前準備

Pandas」というデータ解析を実施できるライブラリをインポートします 

import pandas as pd

sampleの使い方

sampleを使うとデータをランダムに抽出することができます。

データ構造を見たいだけの時はheadtailで十分ですが、

散らばったデータが欲しい」ときに便利です

data = pd.read_excel('都道府県データ.xlsx')
data.sample()
Pythonのsampleメソッドによる結果

sampleでパラメータを設定しないと、ランダムに1行目だけが抽出されます

詳細情報が欲しい場合はパラメータを設定しましょう

パラメータ

おすすめ度を判定:★★★=必須|★★☆=推奨|★☆☆=任意

★★☆:n(抽出する行数)

data.sample(1)

前述した通り、sampleでは1行しか抽出されないため、headと合わせるには「5」を入力する必要があります

.sample():(ランダムに1行を抽出)

.sample(3):(ランダムに3行を抽出)

.sample(100):(ランダムに100行を抽出)

data.sample(3)
Pythonのsampleメソッドによる結果

★★☆:frac(抽出する行数の割合)

data.sample(frac=0.3)

ランダムに抽出する行数を、全体の割合という形で指定することができます

全体=1として「0~1」までの数値で記載します

※前述の「n」と両方使うことはできません

frac=0.1(全体の1割をランダムに抽出)

frac=0.3(全体の3割をランダムに抽出)

frac=0.8(全体の8割をランダムに抽出)

★☆☆:random_state(乱数を固定する)

data.sample(3, random_state=0)

random_stateを設定することで、乱数を固定することができます

同じコードで同じ結果を再現したいときに使います

数値型であれば何を指定しても大丈夫です

指定しないと毎回データが変わる
Pythonのsampleメソッドによる結果の繰り返しgif

★☆☆:axis(行・列どちらをランダムに抽出するか)

data.sample(3, axis=None)

デフォルトでは行がランダムに抽出されますが、列もランダムに抽出することができます

axis=0をランダムに抽出)※デフォルト

axis=indexをランダムに抽出)

axis=1をランダムに抽出)

axis=columnsをランダムに抽出)

★☆☆:replace(重複行の許可)

data.sample(3, replace=False)

デフォルトでは行と列が「重複が無いよう」に抽出されています(False

True」を設定すると同じ内容が含まれます

replace=False(重複なし)※デフォルト

replace=True(重複なし)

data.sample(5, replace=True)
Pythonのsampleメソッドのreplace=True(重複なし)

まとめ

今回はsample()の使い方についてご紹介してきました

似たような機能としてデータの最初の行を抽出するhead()や末尾の行を抽出するtail()があります

【Python】headとtail|一部のデータを抽出してみる
お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。