Вы можете использовать следующий базовый синтаксис для случайной выборки строк из кадра данных 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