Bằng cách sử dụng pandas.DataFrame.sample[] bạn có thể xáo trộn các hàng DataFrame một cách ngẫu nhiên, nếu bạn đang sử dụng NumPy bạn có thể dùng permutation[] phương pháp thay đổi thứ tự của các hàng còn được gọi là xáo trộn. Python cũng có các gói khác như sklearn có một phương pháp shuffle[] để xáo trộn thứ tự các hàng trong DataFrame
- 1. Tạo DataFrame với Từ điển danh sách
- 2. Pandas Shuffle DataFrame Rows
- 3. Pandas Shuffle Rows bằng cách thiết lập chỉ mục mới
- 4. Sử dụng numpy.random.shuffle để thay đổi thứ tự của hàng
- 5. Sử dụng hoán vị [] Từ numpy để lấy mẫu ngẫu nhiên
- 6. Sử dụng sklearn shuffle [] để sắp xếp lại các hàng DataFrame
- 7. Sử dụng DataFrame.apply [] & numpy.random.permutation [] để Shuffle
- 8. Pandas DataFrame Shuffle / Hoán vị các hàng bằng cách sử dụng hàm Lambda
- 9. Trộn dữ liệu ngẫu nhiên theo hàng và cột
- 10. Hoàn thành ví dụ về xáo trộn các hàng DataFrame
- Sự kết luận
- Bạn cũng có thể thích
- Người giới thiệu
1. Tạo DataFrame với Từ điển danh sách
Hãy tạo một Pandas DataFrame với từ điển danh sách, tên các cột của gấu trúc 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]
Sản lượng thấp hơn sản lượng.
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
Sử dụng pandas.DataFrame.sample[frac=1] phương pháp xáo trộn thứ tự của các hàng. Các frac đối số chỉ định phần hàng sẽ trả về trong DataFrame mẫu ngẫu nhiên. frac=None chỉ trả về 1 bản ghi ngẫu nhiên. frac=.5 trả về ngẫu nhiên 50% số hàng.
Lưu ý rằng phương thức sample [] theo mặc định trả về một DataFrame mới sau khi xáo trộn.
# shuffle the DataFrame rows & return all rows df1 = df.sample[frac = 1] print[df1]
Sản lượng thấp hơn sản lượng.
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
Nếu bạn muốn lấy n hàng ngẫu nhiên, hãy sử dụng df.sample[n=2].
3. Pandas Shuffle Rows bằng cách thiết lập chỉ mục mới
Như bạn thấy ở trên, Chỉ mục cũng xáo trộn cùng với các hàng. Nếu bạn muốn một Chỉ mục mới bắt đầu từ 0 bằng cách giữ cho Chỉ mục xáo trộn nguyên trạng reset_index[].
# Create a new Index starting from zero df1 = df.sample[frac = 1].reset_index[] print[df1]
Sản lượng thấp hơn sản lượng.
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
Trong trường hợp nếu bạn không muốn chỉ mục xáo trộn thì hãy sử dụng .reset_index[drop=True]
# Drop shuffle Index df1 = df.sample[frac = 1].reset_index[drop=True] print[df1]
4. Sử dụng numpy.random.shuffle để thay đổi thứ tự của hàng
Bạn có thể dùng numpy.random.shuffle[] để thay đổi thứ tự của các hàng DataFrame. Đảm bảo bạn nhập NumPy trước khi sử dụng phương pháp này.
# using NumPy import numpy as np np.random.shuffle[DataFrame.values]
5. Sử dụng hoán vị [] Từ numpy để lấy mẫu ngẫu nhiên
Chúng tôi cũng có thể sử dụng NumPy.random.permutation[] phương thức để xáo trộn các hàng Pandas DataFrame. Các chỉ số xáo trộn được sử dụng để chọn các hàng bằng cách sử dụng .iloc[] phương pháp. Bạn có thể xáo trộn các hàng của DataFrame bằng cách lập chỉ mục với chỉ mục xáo trộn. Ví dụ, 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]
Sản lượng thấp hơn sản lượng.
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. Sử dụng sklearn shuffle [] để sắp xếp lại các hàng DataFrame
Bạn cũng có thể dùng sklearn.utils.shuffle[] phương pháp xáo trộn các hàng DataFrame của gấu trúc. Để sử dụng sklearn, bạn cần cài đặt nó bằng PIP [Python Package Installer]. Ngoài ra, để sử dụng nó trong một chương trình, hãy đảm bảo bạn nhập nó.
# Using sklearn to shuffle rows from sklearn.utils import shuffle df = shuffle[df]
7. Sử dụng DataFrame.apply [] & numpy.random.permutation [] để Shuffle
Bạn cũng có thể dùng df.apply[np.random.permutation,axis=1]. Sản lượng dưới đầu ra làm xáo trộn các hàng, dtype:object.
# Using apply[] method to shuffle the DataFrame rows import numpy as np df1 = df.apply[np.random.permutation, axis=1] print[df1]
Sản lượng thấp hơn sản lượng.
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 / Hoán vị các hàng bằng cách sử dụng hàm Lambda
Sử dụng df.apply[lambda x: x.sample[frac=1].values để lấy mẫu độc lập trên mỗi cột. Sử dụng áp dụng để lặp lại từng cột và .value để có được một mảng NumPy. frac=1 tất cả các hàng của DataFrame.
# Using lambda method to Shuffle/permutating DataFrame rows df2 = df.apply[lambda x: x.sample[frac=1].values] print[df2]
Sản lượng thấp hơn sản lượng.
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. Trộn dữ liệu ngẫu nhiên theo hàng và cột
Bạn có thể dùng df.sample[frac=1, axis=1].sample[frac=1].reset_index[drop=True] để xáo trộn các hàng và cột một cách ngẫu nhiên. DataFrame mong muốn của bạn trông hoàn toàn ngẫu nhiên. Tôi thực sự không biết trường hợp sử dụng của điều này nhưng tôi muốn đề cập đến nó vì điều này có thể thực hiện được với phương thức 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]
Sản lượng thấp hơn sản lượng.
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. Hoàn thành ví dụ về xáo trộn các hàng DataFrame
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]
Sự kết luận
Trong bài viết này, bạn đã học cách xáo trộn các hàng Pandas DataFrame bằng cách sử dụng các phương pháp khác nhau DataFrame.sample[], DataFrame.apply[], DataFrame.iloc[], hàm lambda. Ngoài ra, bạn đã học cách xáo trộn các hàng Pandas DataFrame bằng cách sử dụng NumPy.random.permutation[] và sklearn.utils.shuffle[] các phương pháp.
Học vui vẻ !!