Mischung/Durchdringung eines Datenrahmens in PandasPython

Python-Programme
Anonymous
 Mischung/Durchdringung eines Datenrahmens in Pandas

Post by Anonymous »

Was ist ein einfacher und effizienter Weg, um einen Datenrahmen in Pandas, nach Zeilen oder durch Spalten zu mischen? D.h. So schreiben Sie eine Funktionsmischung (df, n, axis = 0) mit einem Datenrahmen, einer Reihe von Mischungen n und einer Achse (Achse (

Code: Select all

axis=0
IS Zeilen, Axis = 1 ist Spalten) und gibt eine Kopie des Datenrahmens zurück, der n Zeiten gemischt wurde.

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)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post