Code: Select all
axis=0
Bearbeiten : Key ist, dies zu tun, ohne die Zeilen-/Spaltenbezeichnungen des Datenrahmens zu zerstören. Wenn Sie nur df.index mischen, verliert das alle Informationen. Ich möchte, dass das resultierende df das gleiche wie das Original entspricht, außer mit der Reihenfolge der Zeilen oder der Reihenfolge von Spalten unterschiedlich. Wenn ich sage, dass die Reihen mischen, meine ich jede Reihe unabhängig voneinander. Wenn Sie also zwei Spalten a und b haben, möchte ich, dass jede Zeile selbst gemischt wird, damit Sie nicht die gleichen Assoziationen zwischen einem und b haben, wie Sie es tun, wenn Sie jede Zeile nur wiederbestellen. So etwas wie: < /p>
Code: Select all
for 1...n:
for each col in df: shuffle column
return new_df
< /code>
, aber hoffentlich effizienter als naive Looping. Dies funktioniert bei mir nicht: < /p>
def shuffle(df, n, axis=0):
shuffled_df = df.copy()
for k in range(n):
shuffled_df.apply(np.random.shuffle(shuffled_df.values),axis=axis)
return shuffled_df
df = pandas.DataFrame({'A':range(10), 'B':range(10)})
shuffle(df, 5)