Zufälliges Mischen von DataFrame-Zeilen in Pandas
-
pandas.DataFrame.sample()
-Methode zum Mischen von DataFramezeilen in Pandas -
numpy.random.permutation()
zum Mischen von Pandas DataFrame-Zeilen -
sklearn.utils.shuffle()
zum Mischen von Pandas DataFrame-Zeilen
Wir könnten die Methode sample()
der Pandas DataFrame
-Objekte, die Funktion permutation()
aus dem Modul NumPy
und die Funktion shuffle()
aus dem Paket sklearn
verwenden, um DataFrame
-Zeilen in Pandas zufällig zu mischen.
pandas.DataFrame.sample()
-Methode zum Mischen von DataFramezeilen in Pandas
pandas.DataFrame.sample()
kann verwendet werden, um eine Zufallsstichprobe von Elementen von einer Achse des DataFrame-Objekts zurückzugeben. Wir setzen den Parameter axis
auf 0, da wir die Elemente zeilenweise stichprobenartig entnehmen müssen, was der Standardwert für den Parameter axis
ist.
Der Parameter frac
bestimmt, welcher Anteil der Gesamtinstanzen zurückgegeben werden muss. Wenn wir mischen wollen, setzen wir den Wert von frac
auf 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)
Ausgabe:
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
Die Methode Dataframe.shuttle
mischt Reihen von Pandas DataFrame, wie oben gezeigt. Die Indizes der DataFrame-Reihen bleiben die gleichen wie die anfänglichen Indizes.
Wir könnten die Methode reset_index()
hinzufügen, um den DataFrame-Index zurückzusetzen.
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)
Ausgabe:
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
Hier verhindert die Option drop=True
, dass die Spalte index
als neue Spalte hinzugefügt wird.
numpy.random.permutation()
zum Mischen von Pandas DataFrame-Zeilen
Wir können numpy.random.permutation()
verwenden, um die Indizes von DataFrame zu mischen. Wenn die gemischten Indizes verwendet werden, um Zeilen mit der iloc()
Methode auszuwählen, erhalten wir zufällig gemischte Zeilen.
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)
Ausgabe:
Date Fruit Price
0 April-13 Mango 4
1 April-12 Banana 2
2 April-10 Apple 3
3 April-11 Papaya 1
Sie erhalten möglicherweise ein anderes Ergebnis, wenn Sie den gleichen Code ausführen. Das liegt daran, dass die Funktion np.random.permutation()
jedes Mal unterschiedliche Permutationen von Zahlen erzeugt.
sklearn.utils.shuffle()
zum Mischen von Pandas DataFrame-Zeilen
Wir können auch sklearn.utils.shuffle()
verwenden, um Reihen von Pandas DataFrame zu mischen.
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)
Ausgabe:
Date Fruit Price
3 April-13 Mango 4
0 April-10 Apple 3
1 April-11 Papaya 1
2 April-12 Banana 2
Wenn Sie das Paket sklearn
nicht installiert haben, können Sie es einfach mit Hilfe des Skripts installieren:
pip install -U scikit-learn
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Pandas DataFrame Row
- So erhalten Sie die Zeilenanzahl eines Pandas DataFrame
- Wie man DataFrame-Zeilen auf der Grundlage von Spaltenwerten in Pandas filtert
- Wie man durch Zeilen eines DataFrame in Pandas iteriert
- Wie erhält man einen Index aller Reihen, deren bestimmte Spalte den gegebenen Zustand in Pandas befriedigt
- Finden Sie doppelte Zeilen in einem DataFrame mit Pandas