Pandas

Как случайным образом сэмплировать строки в Pandas (с примерами)

В: Pandas

Вы можете использовать следующий базовый синтаксис для случайной выборки строк из кадра данных pandas:

#randomly select one row
df.sample ()

#randomly select *n* rows
df.sample (n= 5 )

#randomly select *n* rows with repeats allowed
df.sample (n= 5 , replace= True ) 

#randomly select a fraction of the total rows
df.sample (frac= 0.3 )

#randomly select *n* rows by group
df.groupby('team', group_keys= False ).apply ( lambda x: x. sample ( 2 ))

В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
 'points': [25, 12, 15, 14, 19, 23, 25, 29],
 'assists': [5, 7, 7, 9, 12, 9, 9, 4],
 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame 
df

# team points assists rebounds
#0 A 25 5 11
#1 A 12 7 8
#2 A 15 7 10
#3 A 14 9 6
#4 B 19 12 6
#5 B 23 9 5
#6 B 25 9 9
#7 B 29 4 12

Пример 1: случайный выбор одной строки

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

#randomly select one row
df.sample ()

# team points assists rebounds
#5 B 23 9 5

Пример 2: Случайный выбор n строк

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

#randomly select *n* rows
df.sample (n= 5 )

# team points assists rebounds
#5 B 23 9 5
#2 A 15 7 10
#4 B 19 12 6
#6 B 25 9 9
#1 A 12 7 8

Пример 3. Случайный выбор n строк с разрешенными повторами

В следующем коде показано, как случайным образом выбрать n строк из DataFrame с разрешенными повторяющимися строками:

#randomly select 5 rows with repeats allowed
df.sample (n= 5 , replace= True ) 

# team points assists rebounds
#6 B 25 9 9
#7 B 29 4 12
#5 B 23 9 5
#1 A 12 7 8
#5 B 23 9 5

Пример 4. Случайный выбор части общего количества строк

В следующем коде показано, как случайным образом выбрать часть всех строк из DataFrame.

#randomly select 25% of rows
df.sample (frac= 0.25 ) 

#team points assists rebounds
#2 A 15 7 10
#1 A 12 7 8**

Пример 5: Случайный выбор n строк по группам

В следующем коде показано, как случайным образом выбрать n строк по группам из DataFrame.

#randomly select 2 rows from each team
df.groupby('team', group_keys= False).apply(lambda x: x. sample ( 2 ))

 team points assists rebounds
0 A 25 5 11
2 A 15 7 10
7 B 29 4 12
4 B 19 12 6

Обратите внимание, что 2 строки от команды «А» и 2 строки от команды «Б» были выбраны случайным образом.

Примечание.Вы можете найти полную документацию для функции pandas sample() здесь .

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

В следующих руководствах объясняется, как выполнять другие распространенные методы выборки в Pandas:

Как выполнить стратифицированную выборку в Pandas
Как выполнить кластерную выборку в Pandas
Как выполнить стратифицированную выборку в Pandas

Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.