Pandas DataFrame DataFrame.sample() 함수

Minahil Noor 2023년1월30일
  1. pandas.DataFrame.sample()구문
  2. 예제 코드: DataFrame.sample()
  3. 예제 코드: 열 추출을위한DataFrame.sample()
  4. 예제 코드: 데이터 일부를 생성하는DataFrame.sample()
  5. 예제 코드: 데이터 프레임을 오버 샘플링하는DataFrame.sample()
  6. 예제 코드: weights가있는DataFrame.sample()
Pandas DataFrame 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는 동일한 프로그램의 실행을 두 번 보여줍니다. 이 함수는 주어진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.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

replaceFalse로 설정되고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열의 값이 더 큰 행이 반환 된 샘플에서 선택됩니다.

관련 문장 - Pandas DataFrame