Pandas DataFrame DataFrame.sample()関数
Minahil Noor
2023年1月30日
-
pandas.DataFrame.sample()
の構文 -
コード例:
DataFrame.sample()
-
コード例:列を抽出するための
DataFrame.sample()
-
コード例:データの一部を生成する
DataFrame.sample()
-
コード例:DataFrame をオーバーサンプリングする
DataFrame.sample()
-
コード例:
weights
を指定するDataFrame.sample()
Python Pandas DataFrame.sample()
関数は、DataFrame
からランダムな行または列のサンプルを生成します。サンプルには、複数の行または列を含めることができます。
pandas.DataFrame.sample()
の構文
DataFrame.sample(
n=None, frac=None, replace=False, weights=None, random_state=None, axis=None
)
パラメーター
n |
これは整数 値です。これは、DataFrame から選択される行または列の乱数を表します。 |
frac |
これは float 値です。DataFrame から抽出されるランダムな行または列の割合を指定します。たとえば、frac=0.45 は、選択されたランダムな行または列が元のデータの 45%になることを意味します。 |
replace |
これはブール 値です。True に設定されている場合、データを置き換えてサンプルを返します。 |
weights |
これは文字列 または N 次元の配列のような 構造です。DataFrame で呼び出された場合、軸が 0 のときに列の名前を受け入れます。重み列の値が大きい行は、サンプルデータとして返される可能性が高くなります。 |
random_state |
これは整数 または numpy.random.RandomState 関数です。整数 の場合、すべての反復で同じ数の行または列を返します。それ以外の場合は、numpy.random.RandomState オブジェクトを返します。 |
axis |
整数 または文字列 です。行または列のいずれかでターゲット軸について通知します。0 または index 、1 または columns を指定できます。 |
戻り値
Series
または DataFrame
を返します。返される Series
または DataFrame
は、元の DataFrame
からランダムに選択された n 個のアイテムを含む呼び出し元です。
コード例:DataFrame.sample()
デフォルトでは、関数は行を含むサンプル、つまり axis = 1
を返します。
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
print(dataframe)
DataFrame
は次のようになります
Attendance Name Obtained Marks
0 60 Olivia 56
1 100 John 75
2 80 Laura 82
3 75 Ben 64
4 95 Kevin 67
この関数のすべてのパラメーターはオプションです。パラメータを渡さずにこの関数を実行すると、ランダムな単一の行が出力として返されます。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.sample()
print(dataframe1)
出力 1:
Attendance Name Obtained Marks
3 75 Ben 64
出力 2:
Attendance Name Obtained Marks
4 95 Kevin 67
出力 1 と出力 2 は、同じプログラムの 2 回の実行を示しています。この関数は、指定された DataFrame
から行のランダムなサンプルを生成するたびに。
コード例:列を抽出するための DataFrame.sample()
サンプルの列を生成するには、軸を 1 に変更するだけです。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.sample(n=1, axis=1)
print(dataframe1)
出力:
Name
0 Olivia
1 John
2 Laura
3 Ben
4 Kevin
関数は、出力として単一の列のサンプルを生成しました。列の数はパラメータ n = 1
によって設定されます。
コード例:データの一部を生成する DataFrame.sample()
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.sample(frac=0.5)
print(dataframe1)
出力:
Attendance Name Obtained Marks
3 75 Ben 64
4 95 Kevin 67
1 100 John 75
返されるサンプルは元のデータの 50%です。
コード例:DataFrame をオーバーサンプリングする DataFrame.sample()
frac> 1
の場合、同じ行を複数回サンプリングできるようにするには、パラメータ replace
を True
にする必要があります。それ以外の場合は、ValueError
を発生させます。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.sample(frac=1.5, replace=True)
print(dataframe1)
出力:
Attendance Name Obtained Marks
3 75 Ben 64
0 60 Olivia 56
1 100 John 75
2 80 Laura 82
1 100 John 75
2 80 Laura 82
0 60 Olivia 56
4 95 Kevin 67
replace
が False
に設定されている間、frac
が 1 より大きい場合、ValueError
が発生します。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.sample(frac=1.5, replace=False)
print(dataframe1)
出力:
Traceback (most recent call last):
File "..\test.py", line 6, in <module>
dataframe1 = dataframe.sample(frac=1.5, replace=False)
File "..\lib\site-packages\pandas\core\generic.py", line 5044, in sample
raise ValueError(
ValueError: Replace has to be set to `True` when upsampling the population `frac` > 1.
コード例:weights
を指定する DataFrame.sample()
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
}
)
dataframe1 = dataframe.sample(n=2, weights="Attendance")
print(dataframe1)
出力:
Attendance Name Obtained Marks
1 100 John 75
4 95 Kevin 67
ここでは、Attendance
列の値が大きい行が返されたサンプルで選択されています。