Pandas DataFrame DataFrame.sample() Função
-
Sintaxe da função
pandas.DataFrame.sample()
-
Códigos de exemplo:
DataFrame.sample()
-
Códigos de exemplo:
DataFrame.sample()
para extrair as colunas -
Códigos de exemplo:
DataFrame.sample()
para Gerar uma Fração de Dados -
Códigos de exemplo:
DataFrame.sample()
a Oversample the DataFrame -
Códigos de exemplo:
DataFrame.sample()
comweights
A função Python Pandas DataFrame.sample()
gera uma amostra de uma linha ou coluna aleatória de um DataFrame
. A amostra pode conter mais de uma linha ou coluna.
Sintaxe da função pandas.DataFrame.sample()
DataFrame.sample(
n=None, frac=None, replace=False, weights=None, random_state=None, axis=None
)
Parâmetros
n |
É um valor inteiro. Ele representa o número aleatório das linhas ou colunas a serem selecionadas a partir do DataFrame . |
frac |
É um valor float . Ele especifica a porcentagem de linhas ou colunas aleatórias a serem extraídas do DataFrame . Por exemplo, frac=0.45 significa que as linhas ou colunas aleatórias selecionadas serão 45% dos dados originais. |
replace |
É um valor booleano . Se for definido como True , então ele devolve a amostra com a substituição dos dados. |
weights |
É uma estrutura de string ou uma estrutura N-dimensional array-like . Se for chamada em um DataFrame , aceita o nome de uma coluna quando o eixo é 0. As linhas com valores maiores em coluna de pesos são mais propensas a serem retornadas como dados da amostra. |
random_state |
É uma função integer ou numpy.random.RandomState . Se for um inteiro então ele retorna o mesmo número de linhas ou colunas em cada iteração. Caso contrário, ele retorna um objeto numpy.random.RandomState . |
axis |
É um inteiro ou um string . Ele informa sobre o eixo alvo, seja linhas ou colunas. Pode ser 0 ou index e 1 ou columns . |
Retornar
Ele retorna uma Series
ou um DataFrame
. A Series
ou DataFrame
retornada é um chamador que contém n itens selecionados aleatoriamente da DataFrame
original.
Códigos de exemplo: DataFrame.sample()
Por padrão, a função retorna uma amostra contendo linhas, ou seja, 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)
Nosso DataFrame
se parece com
Attendance Name Obtained Marks
0 60 Olivia 56
1 100 John 75
2 80 Laura 82
3 75 Ben 64
4 95 Kevin 67
Todos os parâmetros desta função são opcionais. Se executarmos esta função sem passar nenhum parâmetro, ela retorna uma única linha aleatória como uma saída.
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)
Resultado 1:
Attendance Name Obtained Marks
3 75 Ben 64
Resultado 2:
Attendance Name Obtained Marks
4 95 Kevin 67
Outpt1 e output2 mostram a execução do mesmo programa duas vezes. Cada vez que esta função gera uma amostra aleatória de linhas a partir do DataFrame
dado.
Códigos de exemplo: DataFrame.sample()
para extrair as colunas
Para gerar colunas em uma amostra, simplesmente mudaremos nosso eixo para 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)
Resultado:
Name
0 Olivia
1 John
2 Laura
3 Ben
4 Kevin
A função gerou uma amostra de uma única coluna como uma saída. O número de colunas foi definido pelo parâmetro n=1
.
Códigos de exemplo: DataFrame.sample()
para Gerar uma Fração de Dados
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)
Resultado:
Attendance Name Obtained Marks
3 75 Ben 64
4 95 Kevin 67
1 100 John 75
A amostra devolvida é 50% dos dados originais.
Códigos de exemplo: DataFrame.sample()
a Oversample the DataFrame
Se frac>1
, então o parâmetro replace
deve ser True
para permitir que a mesma linha possa ser amostrada mais de uma vez; caso contrário, ele elevará um 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)
Resultado:
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
Se replace
estiver definido para ser False
, enquanto que frac
é maior que 1, então ele elevará um 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)
Resultado:
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.
Códigos de exemplo: DataFrame.sample()
com weights
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)
Resultado:
Attendance Name Obtained Marks
1 100 John 75
4 95 Kevin 67
Aqui, as linhas com valores maiores na coluna Attendance
são selecionadas na amostra retornada.