Систематическая выборка в Pandas (с примерами)


Исследователи часто берут образцы из населения и используют данные из выборки, чтобы сделать выводы о населении в целом.

Одним из широко используемых методов выборки является систематическая выборка , которая реализуется с помощью простого двухэтапного процесса:

1. Расположите каждого члена популяции в некотором порядке.

2. Выберите случайную начальную точку и выберите каждого n -го члена для включения в выборку.

В этом руководстве объясняется, как выполнять систематическую выборку в кадре данных pandas в Python.

Пример: систематическая выборка в Pandas

Предположим, учитель хочет получить выборку из 100 учеников из школы, в которой всего 500 учеников. Она предпочитает использовать систематическую выборку, в которой она размещает каждого ученика в алфавитном порядке в соответствии с его фамилией, случайным образом выбирает начальную точку и выбирает каждого пятого ученика для включения в выборку.

В следующем коде показано, как создать поддельный фрейм данных для работы с Python:

import pandas as pd
import numpy as np
import string
import random

#make this example reproducible
np.random.seed (0)

#create simple function to generate random last names
def randomNames(size=6, chars=string.ascii_uppercase ):
 return ''.join(random. choice (chars) for _ in range(size))

#create DataFrame
df = pd.DataFrame({'last_name': [randomNames() for _ in range(500)],
 'GPA': np.random.normal (loc=85, scale=3, size=500)})

#view first six rows of DataFrame
df.head ()

last_name GPA
0 PXGPIV 86.667888
1 JKRRQI 87.677422
2 TRIZTC 83.733056
3 YHUGIN 85.314142
4 ZVUNVK 85.684160

А следующий код показывает, как получить выборку из 100 студентов посредством систематической выборки:

#obtain systematic sample by selecting every 5th row
sys_sample_df = df.iloc [::5]

#view first six rows of DataFrame
sys_sample_df.head ()

 last_name gpa
3 ORJFW 88.78065
8 RWPSB 81.96988
13 RACZU 79.21433
18 ZOHKA 80.47246
23 QJETK 87.09991
28 JTHWB 83.87300

#view dimensions of data frame
sys_sample_df.shape

(100, 2)

Обратите внимание, что первый элемент, включенный в выборку, находился в первой строке исходного фрейма данных. Каждый последующий член в выборке расположен через 5 строк после предыдущего члена.

И с помощью shape() мы видим, что полученная нами систематическая выборка представляет собой фрейм данных со 100 строками и 2 столбцами.

Дополнительные ресурсы

Типы методов отбора проб
Кластерная выборка в Pandas
Стратифицированная выборка в Pandas