Cara menggunakan NP.SHUFFLE pada Python

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!!

Anda Mungkin Juga Menyukai

Referensi

Bài mới nhất

Chủ Đề