Pandas DataFrame DataFrame.sample() Función
-
La sintaxis de
pandas.DataFrame.sample()
-
Códigos de ejemplo:
DataFrame.sample()
-
Códigos de ejemplo:
DataFrame.sample()
para extraer las columnas -
Códigos de ejemplo:
DataFrame.sample()
para generar una fracción de datos -
Códigos de ejemplo:
DataFrame.sample()
para sobremuestrear el DataFrame -
Códigos de ejemplo:
DataFrame.sample()
Conweights
La función Pandas Python DataFrame.sample()
genera una muestra de una fila o una columna aleatoria de un DataFrame
. La muestra puede contener más de una fila o columna.
La sintaxis de pandas.DataFrame.sample()
DataFrame.sample(
n=None, frac=None, replace=False, weights=None, random_state=None, axis=None
)
Parámetros
n |
Es un valor entero. Representa el número aleatorio de las filas o columnas a ser seleccionadas del DataFrame . |
frac |
Es un valor flotante. Especifica el porcentaje de filas o columnas aleatorias que se extraen del DataFrame . Por ejemplo, frac=0.45 significa que las filas o columnas aleatorias seleccionadas serán el 45% de los datos originales. |
replace |
Es un valor booleano. Si se ajusta a True , entonces devuelve la muestra con la sustitución de datos. |
weights |
Es una cadena de caracteres o una estructura N-dimensional array-like . Si se llama en un DataFrame entonces acepta el nombre de una columna cuando el eje es 0. Las filas con valores mayores en la columna de pesos tienen más probabilidades de ser devueltas como los datos de la muestra. |
random_state |
Es una entera o numpy.random.RandomState función. Si es un entero entonces devuelve el mismo número de filas o columnas en cada iteración. De lo contrario, devuelve un objeto numpy.random.RandomState . |
axis |
Es un entero o una cadena de caracteres. Dice sobre el eje objetivo ya sea filas o columnas. Puede ser 0 o index y 1 o columns . |
Retorna
Devuelve una Series
o un DataFrame
. La Series
o DataFrame
devuelta es una llamada que contiene n elementos seleccionados al azar del DataFrame
original.
Códigos de ejemplo: DataFrame.sample()
Por defecto, la función devuelve una muestra que contiene filas, es decir, 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)
Nuestro DataFrame
parece
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 los parámetros de esta función son opcionales. Si ejecutamos esta función sin pasar ningún parámetro, devuelve una sola fila aleatoria como salida.
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)
Salida1:
Attendance Name Obtained Marks
3 75 Ben 64
Salida2:
Attendance Name Obtained Marks
4 95 Kevin 67
La salida 1 y la salida 2 muestran la ejecución del mismo programa dos veces. Cada vez que esta función genera una muestra aleatoria de filas a partir del DataFrame
dado.
Códigos de ejemplo: DataFrame.sample()
para extraer las columnas
Para generar columnas en una muestra simplemente cambiaremos nuestro eje a 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
La función ha generado una muestra de una sola columna como salida. El número de columnas fue establecido por el parámetro n=1
.
Códigos de ejemplo: DataFrame.sample()
para generar una fracción de datos
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
La muestra devuelta es el 50% de los datos originales.
Códigos de ejemplo: DataFrame.sample()
para sobremuestrear el DataFrame
Si frac>1
, entonces el parámetro replace
debe ser True
para permitir que la misma fila pueda ser muestreada más de una vez; de lo contrario, levantará un 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
Si replace
está configurado como False
mientras que frac
es mayor que 1, entonces se producirá un 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 ejemplo: DataFrame.sample()
Con 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
Aquí, las filas con mayores valores en la columna Attendance
están seleccionadas en la muestra devuelta.