Vamos discutir como selecionar aleatoriamente linhas do Pandas DataFrame . Uma seleção aleatória de linhas de um DataFrame pode ser obtida de diferentes maneiras.
Crie um dataframe simples com dicionário de listas.
import pandas as pd
data = {
'Name': ['Jai', 'Princi', 'Gaurav', 'Anuj', 'Geeku'],
'Age': [27, 24, 22, 32, 15],
'Address': ['Delhi', 'Kanpur', 'Allahabad', 'Kannauj', 'Noida'],
'Qualification':['Msc', 'MA', 'MCA', 'Phd', '10th']
}
df = pd.DataFrame(data)
print(df)
Saída:
Name Age Address Qualification 0 Jai 27 Delhi Msc 1 Princi 24 Kanpur MA 2 Gaurav 22 Allahabad MCA 3 Anuj 32 Kannauj Phd 4 Geeku 15 Noida 10th
Método #1: Usando o método sample()
O método sample()
retorna uma amostra aleatória de itens de um eixo do objeto e este objeto é do mesmo tipo de seu chamador.
Exemplo #1:
# Selecione uma linha aleatoriamente usando sample()
# sem fornecer nenhum parâmetro.
import pandas as pd
data = {
'Name': ['Jai', 'Princi', 'Gaurav', 'Anuj', 'Geeku'],
'Age': [27, 24, 22, 32, 15],
'Address': ['Delhi', 'Kanpur', 'Allahabad', 'Kannauj', 'Noida'],
'Qualification':['Msc', 'MA', 'MCA', 'Phd', '10th']
}
df = pd.DataFrame(data)
# Seleciona uma linha do dataframe aleatoriamente
print(df.sample())
Name Age Address Qualification 4 Geeku 15 Noida 10th
Exemplo #2: usando o parâmetro n
, que seleciona n números de linhas aleatoriamente.
Selecione n números de linhas aleatoriamente usando sample(n)
ou sample(n=n)
. Cada vez que você executa isso, obtém n linhas diferentes.
# Seleciona três linhas do dataframe aleatoriamente
print(df.sample(n=3))
Name Age Address Qualification 2 Gaurav 22 Allahabad MCA 0 Jai 27 Delhi Msc 1 Princi 24 Kanpur MA
Exemplo #3: Usando o parâmetro frac
.
Pode-se fazer a fração dos itens do eixo e obter linhas. Por exemplo, se for passado o valor .5
para o parâmetro frac
o método sample
retornar 50% das linhas.
# Seleciona três linhas do dataframe aleatoriamente
print(df.sample(frac=.5))
Name Age Address Qualification 3 Anuj 32 Kannauj Phd 4 Geeku 15 Noida 10th
Exemplo #4: selecione algumas linhas aleatoriamente com replace=false
A substituição de parâmetro dá permissão para selecionar uma linha várias vezes (como). O valor padrão do parâmetro de substituição do método sample()
é False
, então você nunca seleciona mais do que o número total de linhas.
# o dataframe df tem apenas 4 linhas
# se tentarmos selecionar mais de 4 linhas, ocorrerá um erro
# Não é possível obter uma amostra maior do que a população quando 'replace = False'
print(df.sample(n=3, replace=False))
Saída:
Name Age Address Qualification 0 Jai 27 Delhi Msc 3 Anuj 32 Kannauj Phd 4 Geeku 15 Noida 10th
Exemplo #5: Selecione mais de n linhas, onde n é o número total de linhas com a ajuda do parâmetro replace
.
# o dataframe df tem apenas 4 linhas
# Selecione mais de 4 linhas com o uso do parâmetro replace
# o valor padrão é False
print(df.sample(n=6, replace=True))
Saída:
Name Age Address Qualification 4 Geeku 15 Noida 10th 2 Gaurav 22 Allahabad MCA 2 Gaurav 22 Allahabad MCA 4 Geeku 15 Noida 10th 2 Gaurav 22 Allahabad MCA 4 Geeku 15 Noida 10th
Exemplo #6: Usando o parâmetro random_state
Com um determinado DataFrame, a amostra sempre buscará as mesmas linhas. Se random_state
for None
ou np.random
, um objeto RandomState inicializado aleatoriamente será retornado.
print(df.sample(n=2, random_state=2))
Saída:
Name Age Address Qualification 2 Gaurav 22 Allahabad MCA 4 Geeku 15 Noida 10th
Artigo escrito por Rajput-Ji e traduzido por Acervolima de How to randomly select rows from Pandas DataFrame.
0 comentários:
Postar um comentário