Mescola casualmente le righe DataFrame in Pandas
-
Metodo
pandas.DataFrame.sample()
per mescolare le righe DataFrame in Pandas -
numpy.random.permutation()
per mescolare le righe DataFrame di Pandas -
sklearn.utils.shuffle()
per mescolare le righe DataFrame di Pandas
Potremmo usare il metodo sample()
degli oggetti DataFrame
di Pandas, la funzione permutation()
dal modulo NumPy e la funzione shuffle()
dal pacchetto sklearn
per mescolare casualmente le righe DataFrame
in Pandas.
Metodo pandas.DataFrame.sample()
per mescolare le righe DataFrame in Pandas
pandas.DataFrame.sample()
può essere utilizzato per restituire un campione casuale di elementi da un asse di un oggetto DataFrame. Impostiamo il parametro axis
a 0 poiché abbiamo bisogno di campionare gli elementi per riga, che è il valore predefinito per il parametro axis
.
Il parametro frac
determina quale frazione delle istanze totali deve essere restituita. Se vogliamo mescolare, impostiamo il valore di frac
a 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)
Produzione:
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
Il metodo Dataframe.shuttle
mescola le righe di Pandas DataFrame, come mostrato sopra. Gli indici delle righe DataFrame mantengono gli stessi indici iniziali.
Potremmo aggiungere il metodo reset_index()
per reimpostare l’indice 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)
Produzione:
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
Qui, l’opzione drop=True
impedisce che la colonna index
venga aggiunta come nuova colonna.
numpy.random.permutation()
per mescolare le righe DataFrame di Pandas
Possiamo usare numpy.random.permutation()
per mescolare gli indici di DataFrame. Quando gli indici mescolati sono usati per selezionare righe usando il metodo iloc()
, otteniamo righe mescolate casualmente.
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)
Produzione:
Date Fruit Price
0 April-13 Mango 4
1 April-12 Banana 2
2 April-10 Apple 3
3 April-11 Papaya 1
Potresti ottenere un risultato diverso durante l’esecuzione dello stesso codice. È perché la funzione np.random.permutation()
genera ogni volta diverse permutazioni di numeri.
sklearn.utils.shuffle()
per mescolare le righe DataFrame di Pandas
Possiamo anche usare sklearn.utils.shuffle()
per mescolare righe di 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)
Produzione:
Date Fruit Price
3 April-13 Mango 4
0 April-10 Apple 3
1 April-11 Papaya 1
2 April-12 Banana 2
Se non hai il pacchetto sklearn
installato nel tuo, puoi semplicemente installarlo usando lo script:
pip install -U scikit-learn
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticolo correlato - Pandas DataFrame Row
- Ottieni il conteggio delle righe di un DataFrame Pandas
- Filtra le righe del dataframe in base ai valori delle colonne in Pandas
- Scorri le righe di un DataFrame in Pandas
- Ottieni l'indice di tutte le righe la cui colonna specifica soddisfa una determinata condizione in Pandas
- Ottieni l'indice delle righe la cui colonna corrisponde a un valore specifico in Pandas