Dengan menggunakan pandas.DataFrame.sample[] metode Anda dapat mengocok baris DataFrame secara acak, jika Anda menggunakan NumPy Anda dapat menggunakan permutation[] metode untuk mengubah urutan baris juga disebut shuffle. Python juga memiliki paket lain seperti sklearn yang memiliki metode shuffle[] untuk mengacak urutan baris di DataFrame
- 1. Buat DataFrame dengan Kamus Daftar
- 2. Pandas Shuffle DataFrame Rows
- 3. Panda Mengacak Baris dengan Mengatur Indeks Baru
- 4. Menggunakan numpy.random.shuffle untuk Mengubah Urutan Baris
- 5. Menggunakan permutasi[] Dari numpy untuk Mendapatkan Sampel Acak
- 6. Menggunakan sklearn shuffle[] untuk Menyusun Ulang Baris DataFrame
- 7. Menggunakan DataFrame.apply[] & numpy.random.permutation[] ke Shuffle
- 8. Pandas DataFrame Shuffle/Permutasi Baris Menggunakan Fungsi Lambda
- 9. Acak DataFrame Secara Acak berdasarkan Baris dan Kolom
- 10. Contoh Lengkap Untuk Shuffle
DataFrame Rows
- Kesimpulan
- Anda Mungkin Juga Menyukai
- Referensi
1. Buat DataFrame dengan Kamus Daftar
Mari buat Pandas DataFrame dengan kamus daftar, nama kolom pandas DataFrame Courses, Fee, Duration, Discount.
import pandas as pd technologies = { 'Courses':["Spark","PySpark","Hadoop","Python","pandas","Oracle","Java"], 'Fee' :[20000,25000,26000,22000,24000,21000,22000], 'Duration':['30day','40days','35days','40days','60days','50days','55days'], 'Discount':[1000,2300,1500,1200,2500,2100,2000] } df = pd.DataFrame[technologies] print[df]
Hasil di bawah output.
Courses Fee Duration Discount 0 Spark 20000 30day 1000 1 PySpark 25000 40days 2300 2 Hadoop 26000 35days 1500 3 Python 22000 40days 1200 4 pandas 24000 60days 2500 5 Oracle 21000 50days 2100 6 Java 22000 55days 2000
2. Pandas Shuffle DataFrame Rows
Menggunakan pandas.DataFrame.sample[frac=1] metode untuk mengacak urutan baris. Itu frac argumen menentukan fraksi baris yang akan dikembalikan dalam sampel acak DataFrame. frac=None hanya mengembalikan 1 catatan acak. frac=.5 mengembalikan acak 50% dari baris.
Perhatikan bahwa metode sample[] secara default mengembalikan DataFrame baru setelah mengacak.
# shuffle the DataFrame rows & return all rows df1 = df.sample[frac = 1] print[df1]
Hasil di bawah output.
Courses Fee Duration Discount 0 Spark 20000 30day 1000 6 Java 22000 55days 2000 1 PySpark 25000 40days 2300 5 Oracle 21000 50days 2100 2 Hadoop 26000 35days 1500 3 Python 22000 40days 1200 4 pandas 24000 60days 2500
Jika Anda ingin mendapatkan n baris acak, gunakan df.sample[n=2].
3. Panda Mengacak Baris dengan Mengatur Indeks Baru
Seperti yang Anda lihat di atas, Indeks juga dikocok bersama dengan baris. Jika Anda menginginkan Indeks baru mulai dari 0 dengan tetap menggunakan Indeks yang diacak apa adanya reset_index[].
# Create a new Index starting from zero df1 = df.sample[frac = 1].reset_index[] print[df1]
Hasil di bawah output.
index Courses Fee Duration Discount 0 6 Java 22000 55days 2000 1 2 Hadoop 26000 35days 1500 2 4 pandas 24000 60days 2500 3 3 Python 22000 40days 1200 4 5 Oracle 21000 50days 2100 5 0 Spark 20000 30day 1000 6 1 PySpark 25000 40days 2300
Jika Anda tidak ingin Indeks yang diacak maka gunakan .reset_index[drop=True]
# Drop shuffle Index df1 = df.sample[frac = 1].reset_index[drop=True] print[df1]
4. Menggunakan numpy.random.shuffle untuk Mengubah Urutan Baris
Kamu dapat memakai numpy.random.shuffle[] untuk mengubah urutan baris DataFrame. Pastikan Anda mengimpor NumPy sebelum menggunakan metode ini.
# using NumPy import numpy as np np.random.shuffle[DataFrame.values]
5. Menggunakan permutasi[] Dari numpy untuk Mendapatkan Sampel Acak
Kami juga dapat menggunakan NumPy.random.permutation[] metode untuk mengacak ke baris Pandas DataFrame. Indeks acak digunakan untuk memilih baris menggunakan .iloc[] metode. Anda dapat mengacak baris DataFrame dengan mengindeks dengan indeks yang diacak. Contohnya, df.iloc[np.random.permutation[df.index]].reset_index[drop=True].
# Using numpy permutation[] method to shuffle DataFrame rows df1 = df.iloc[np.random.permutation[df.index]].reset_index[drop=True] print[df1]
Hasil di bawah output.
Courses Fee Duration Discount 0 pandas 24000 60days 2500 1 Spark 20000 30day 1000 2 Java 22000 55days 2000 3 Oracle 21000 50days 2100 4 Python 22000 40days 1200 5 PySpark 25000 40days 2300 6 Hadoop 26000 35days 1500
6. Menggunakan sklearn shuffle[] untuk Menyusun Ulang Baris DataFrame
Anda juga bisa menggunakan sklearn.utils.shuffle[] metode untuk mengacak baris DataFrame panda. Untuk menggunakan sklearn, Anda perlu menginstalnya menggunakan PIP [Python Package Installer]. Juga, untuk menggunakannya dalam suatu program, pastikan Anda mengimpornya.
# Using sklearn to shuffle rows from sklearn.utils import shuffle df = shuffle[df]
7. Menggunakan DataFrame.apply[] & numpy.random.permutation[] ke Shuffle
Anda juga bisa menggunakan df.apply[np.random.permutation,axis=1]. Hasil di bawah output yang mengacak baris, dtype:object.
# Using apply[] method to shuffle the DataFrame rows import numpy as np df1 = df.apply[np.random.permutation, axis=1] print[df1]
Hasil di bawah output.
0 [30day, Spark, 1000, 20000] 1 [40days, PySpark, 25000, 2300] 2 [1500, Hadoop, 26000, 35days] 3 [40days, 1200, Python, 22000] 4 [60days, pandas, 2500, 24000] 5 [2100, 21000, 50days, Oracle] 6 [2000, Java, 22000, 55days] dtype: object
8. Pandas DataFrame Shuffle/Permutasi Baris Menggunakan Fungsi Lambda
Menggunakan df.apply[lambda x: x.sample[frac=1].values untuk melakukan pengambilan sampel secara mandiri pada setiap kolom. Gunakan apply untuk mengulangi setiap kolom dan .value untuk mendapatkan array NumPy. frac=1 semua baris DataFrame.
# Using lambda method to Shuffle/permutating DataFrame rows df2 = df.apply[lambda x: x.sample[frac=1].values] print[df2]
Hasil di bawah output.
Courses Fee Duration Discount 0 Oracle 20000 40days 1000 1 Hadoop 21000 60days 2300 2 pandas 26000 40days 1500 3 PySpark 24000 30day 1200 4 Spark 22000 35days 2000 5 Java 22000 50days 2500 6 Python 25000 55days 2100
9. Acak DataFrame Secara Acak berdasarkan Baris dan Kolom
Kamu dapat memakai df.sample[frac=1, axis=1].sample[frac=1].reset_index[drop=True] untuk mengacak baris dan kolom secara acak. DataFrame yang Anda inginkan terlihat benar-benar acak. Saya benar-benar tidak tahu kasus penggunaan ini tetapi ingin membahasnya karena ini dimungkinkan dengan metode sample[] .
# Using sample[] method to shuffle DataFrame rows and columns df2 = df.sample[frac=1, axis=1].sample[frac=1].reset_index[drop=True] print[df2]
Hasil di bawah output.
Duration Fee Discount Courses 0 60days 24000 2500 pandas 1 55days 22000 2000 Java 2 40days 25000 2300 PySpark 3 40days 22000 1200 Python 4 35days 26000 1500 Hadoop 5 50days 21000 2100 Oracle 6 30day 20000 1000 Spark
10. Contoh Lengkap Untuk Shuffle DataFrame Rows
import pandas as pd technologies = { 'Courses':["Spark","PySpark","Hadoop","Python","pandas","Oracle","Java"], 'Fee' :[20000,25000,26000,22000,24000,21000,22000], 'Duration':['30day','40days','35days', '40days','60days','50days','55days'], 'Discount':[1000,2300,1500,1200,2500,2100,2000] } df = pd.DataFrame[technologies] print[df] # shuffle the DataFrame rows & return all rows df1 = df.sample[frac = 1] print[df1] # Create a new Index starting from zero df1 = df.sample[frac = 1].reset_index[] print[df1] # using NumPy import numpy as np np.random.shuffle[DataFrame.values] # Using numpy permutation[] method to shuffle DataFrame rows df1 = df.iloc[np.random.permutation[df.index]].reset_index[drop=True] print[df1] # Using sklearn to shuffle rows from sklearn.utils import shuffle df = shuffle[df] # Using apply[] method to shuffle the DataFrame rows import numpy as np df1 = df.apply[np.random.permutation, axis=1] print[df1] # Using lambda method to Shuffle/permutating DataFrame rows df2 = df.apply[lambda x: x.sample[frac=1].values] print[df2] # Using sample[] method to shuffle DataFrame rows and columns df2 = df.sample[frac=1, axis=1].sample[frac=1].reset_index[drop=True] print[df2]
Kesimpulan
Dalam artikel ini, Anda telah mempelajari cara mengacak baris Pandas DataFrame menggunakan pendekatan yang berbeda DataFrame.sample[], DataFrame.apply[], DataFrame.iloc[], fungsi lambda. Juga, Anda telah belajar mengacak baris Pandas DataFrame menggunakan NumPy.random.permutation[] dan sklearn.utils.shuffle[] metode.
Selamat Belajar!!