Cómo barajar aleatoriamente filas de DataFrame en Pandas
-
Método
pandas.DataFrame.sample()
para barajar filas de DataFrame en Pandas -
numpy.random.permutation()
para mezclar filas de Pandas DataFrame -
sklearn.utils.shuffle()
para mezclar filas de Pandas DataFrame
Podríamos usar el método sample()
de los objetos Pandas DataFrame
, la función permutation()
del módulo NumPy
y la función shuffle()
del paquete sklearn
para mezclar aleatoriamente las filas DataFrame
en Pandas.
Método pandas.DataFrame.sample()
para barajar filas de DataFrame en Pandas
pandas.DataFrame.sample()
se puede usar para devolver una muestra aleatoria de elementos desde un eje del objeto DataFrame. Establecemos el parámetro axis
en 0 ya que necesitamos muestrear elementos de fila, que es el valor predeterminado para el parámetro axis
.
El parámetro frac
determina qué fracción del total de instancias debe devolverse. Si deseamos barajar, establecemos el valor de frac
en 1.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]
df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
print(df)
df_shuffled = df.sample(frac=1).reset_index(drop=True)
print(df_shuffled)
Producción :
Date Fruit Price
0 April-10 Apple 3
1 April-11 Papaya 1
2 April-12 Banana 2
3 April-13 Mango 4
Date Fruit Price
3 April-13 Mango 4
2 April-12 Banana 2
0 April-10 Apple 3
1 April-11 Papaya 1
El método Dataframe.shuttle
baraja filas de Pandas DataFrame, como se muestra arriba. Los índices de las filas de DataFrame se mantienen igual que los índices iniciales.
Podríamos agregar el método reset_index()
para restablecer el índice del DataFrame.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]
df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
print(df)
df_shuffled = df.sample(frac=1).reset_index(drop=True)
print(df_shuffled)
Producción :
Date Fruit Price
0 April-10 Apple 3
1 April-11 Papaya 1
2 April-12 Banana 2
3 April-13 Mango 4
Date Fruit Price
0 April-11 Papaya 1
1 April-13 Mango 4
2 April-10 Apple 3
3 April-12 Banana 2
Aquí, la opción drop=True
evita que la columna index
se agregue como la nueva columna.
numpy.random.permutation()
para mezclar filas de Pandas DataFrame
Podemos usar numpy.random.permutation()
para barajar los índices de DataFrame. Cuando los índices barajados se utilizan para seleccionar filas utilizando el método iloc()
, obtenemos filas aleatoriamente barajadas.
import pandas as pd
import numpy as np
dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]
df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
df_shuffled = df.iloc[np.random.permutation(df.index)].reset_index(drop=True)
print(df_shuffled)
Producción :
Date Fruit Price
0 April-13 Mango 4
1 April-12 Banana 2
2 April-10 Apple 3
3 April-11 Papaya 1
Es posible que obtenga un resultado diferente mientras ejecuta el mismo código. Esto se debe a que la función np.random.permutation()
genera diferentes permutaciones de números cada vez.
sklearn.utils.shuffle()
para mezclar filas de Pandas DataFrame
También podemos usar sklearn.utils.shuffle()
para mezclar filas de Pandas DataFrame.
import pandas as pd
import numpy as np
import sklearn
dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]
df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
df_shuffled = sklearn.utils.shuffle(df)
print(df_shuffled)
Producción :
Date Fruit Price
3 April-13 Mango 4
0 April-10 Apple 3
1 April-11 Papaya 1
2 April-12 Banana 2
Si no tiene instalado el paquete sklearn
, simplemente puede instalarlo usando el script:
pip install -U scikit-learn
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtículo relacionado - Pandas DataFrame Row
- Cómo obtener el recuento de filas de un Pandas DataFrame
- Cómo filtrar filas de DataFrames en función de los valores de columna en Pandas
- Cómo iterar a través de filas de un DataFrame en Pandas
- Cómo obtener el índice de todas las filas cuya columna particular satisface la condición dada en Pandas
- Encuentre filas duplicadas en un marco de datos usando Pandas