Cómo seleccionar filas aleatoriamente de Pandas DataFrame

Analicemos cómo seleccionar filas aleatoriamente de Pandas DataFrame . Una selección aleatoria de filas de un DataFrame se puede lograr de diferentes maneras. 
Cree un marco de datos simple con un diccionario de listas. 
 

Python3

# Import pandas package
import pandas as pd
  
# Define a dictionary containing employee data
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']}
 
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
 
# select all columns
df

Método #1: Usar el método  sample()
 

El método de muestra devuelve una muestra aleatoria de elementos de un eje de objeto y este objeto del mismo tipo que la persona que llama. 

Ejemplo 1: 
 

Python3

# Selects one row randomly using sample()
# without give any parameters.
 
# Import pandas package
import pandas as pd
  
# Define a dictionary containing employee data
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']}
 
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
 
# Select one row randomly using sample()
# without give any parameters
df.sample()

Producción: 
 

Ejemplo 2: Uso del parámetro n , que selecciona n números de filas al azar.
Seleccione n números de filas al azar usando muestra (n) o muestra (n = n). Cada vez que ejecuta esto, obtiene n filas diferentes. 
 

Python3

# To get 3 random rows
# each time it gives 3 different rows
 
# df.sample(3) or
df.sample(n = 3)

Producción: 
 

Ejemplo 3: Uso del parámetro frac.
Uno puede hacer fracciones de elementos de eje y obtener filas. Por ejemplo, si frac= .5, el método de muestra devuelve el 50 % de las filas.
 

Python3

# Fraction of rows
 
# here you get .50 % of the rows
df.sample(frac = 0.5)

Producción: 
 

Ejemplo 4: 
primero selecciona el 70 % de las filas de todo el marco de datos df y coloca otro marco de datos df1 , luego seleccionamos el 50 % de frac de df1
 

Python3

# fraction of rows
 
# here you get 70 % row from the df
# make put into another dataframe df1
df1 = df.sample(frac =.7)
 
# Now select 50 % rows from df1
df1.sample(frac =.50)

Producción: 
 

Ejemplo 5: seleccione algunas filas al azar con replace = false
El parámetro replace da permiso para seleccionar una fila muchas veces (como). El valor predeterminado del parámetro de reemplazo del método sample() es Falso, por lo que nunca selecciona más del número total de filas.
 

Python3

# Dataframe df has only 4 rows
 
# if we try to select more than 4 row then will come error
# Cannot take a larger sample than population when 'replace = False'
df1.sample(n = 3, replace = False)

Producción: 
 

Ejemplo 6: seleccione más de n filas donde n es el número total de filas con la ayuda de replace.
 

Python3

# Select more than rows with using replace
# default it is False
df1.sample(n = 6, replace = True)

Producción: 
 

Ejemplo 7: Uso de pesos
 

Python3

# Weights will be re-normalized automatically
test_weights = [0.2, 0.2, 0.2, 0.4]
 
df1.sample(n = 3, weights = test_weights)

Producción: 
 

Ejemplo 8: Uso del eje
El eje acepta número o nombre. El método sample() también permite a los usuarios muestrear columnas en lugar de filas usando el argumento del eje.
 

Python3

# Accepts axis number or name.
 
# sample also allows users to sample columns
# instead of rows using the axis argument.
df1.sample(axis = 0)

Producción: 
 

Ejemplo 9: Uso de random_state
Con un DataFrame dado, la muestra siempre obtendrá las mismas filas. Si random_state es None o np.random, se devuelve un objeto RandomState inicializado aleatoriamente.
 

Python3

# With a given seed, the sample will always draw the same rows.
 
# If random_state is None or np.random,
# then a randomly-initialized
# RandomState object is returned.
df1.sample(n = 2, random_state = 2)

Producción: 
 

  
Método n.º 2: con NumPy
Numpy, elija cuántos índices se incluyen para la selección aleatoria y podemos permitir el reemplazo.
 

Python3

# Import pandas & Numpy package
import numpy as np
import pandas as pd
  
# Define a dictionary containing employee data
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']}
 
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
 
# Choose how many index include for random selection
chosen_idx = np.random.choice(4, replace = True, size = 6)
 
df2 = df.iloc[chosen_idx]
 
df2

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por Rajput-Ji y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *