पांडास DataFrame में पंक्तियों को बेतरतीब ढंग से फेरबदल करना डेटा साइंस में एक सामान्य ऑपरेशन है, जो प्रशिक्षण और परीक्षण डेटासेट बनाने, यादृच्छिक नमूनाकरण, या विश्लेषण के लिए डेटा को बेतरतीब ढंग से व्यवस्थित करने जैसे कार्यों के लिए महत्वपूर्ण है। यह लेख इसे प्राप्त करने के तीन कुशल तरीकों का पता लगाता है, उनकी ताकत और कमजोरियों को उजागर करता है।
विषयवस्तु की तालिका
पांडास sample()
विधि
पांडास sample()
विधि DataFrame पंक्तियों को फेरबदल करने के लिए एक उपयोगकर्ता के अनुकूल दृष्टिकोण प्रदान करती है। frac
पैरामीटर को 1 पर सेट करके, आपको मूल DataFrame का पूरी तरह से यादृच्छिक क्रम प्राप्त होता है।
import pandas as pd
# नमूना DataFrame
data = {'col1': [1, 2, 3, 4, 5], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)
# sample() का उपयोग करके फेरबदल करें
shuffled_df = df.sample(frac=1, random_state=42) # पुनरुत्पादन के लिए random_state
print("मूल DataFrame:n", df)
print("nफेरबदल किया गया DataFrame:n", shuffled_df)
पुनरुत्पादन के लिए random_state
तर्क महत्वपूर्ण है। एक पूर्णांक निर्दिष्ट करने से कई रनों में सुसंगत फेरबदल सुनिश्चित होता है। इसे छोड़ने से हर बार अलग-अलग फेरबदल होंगे।
NumPy permutation()
फलन
NumPy का permutation()
फलन सूचकांकों का एक यादृच्छिक क्रमचय उत्पन्न करता है। यह दृष्टिकोण आम तौर पर sample()
से तेज होता है, खासकर बड़े DataFrames के लिए, क्योंकि यह NumPy सरणियों पर सीधे काम करता है जो अधिक कुशल होते हैं।
import pandas as pd
import numpy as np
# नमूना DataFrame
data = {'col1': [1, 2, 3, 4, 5], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)
# numpy.random.permutation() का उपयोग करके फेरबदल करें
shuffled_indices = np.random.permutation(len(df))
shuffled_df = df.iloc[shuffled_indices]
print("मूल DataFrame:n", df)
print("nफेरबदल किया गया DataFrame:n", shuffled_df)
पुनरुत्पादन योग्य परिणामों के लिए, np.random.permutation()
को कॉल करने से पहले np.random.seed(42)
का उपयोग करें।
Scikit-learn shuffle()
फलन
Scikit-learn का shuffle()
फलन तब विशेष रूप से फायदेमंद होता है जब किसी संबंधित सरणी (जैसे, पर्यवेक्षित शिक्षण सेटिंग में लेबल) के साथ एक DataFrame को फेरबदल किया जाता है। यह सुनिश्चित करता है कि फेरबदल के बाद DataFrame और सरणी सिंक्रनाइज़ रहें।
import pandas as pd
from sklearn.utils import shuffle
# नमूना DataFrame
data = {'col1': [1, 2, 3, 4, 5], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)
# DataFrame और एक अलग सरणी को फेरबदल करें (यदि आवश्यक हो)
shuffled_df, _ = shuffle(df, random_state=42) # अंडरस्कोर दूसरा रिटर्न मान अनदेखा करता है
print("मूल DataFrame:n", df)
print("nफेरबदल किया गया DataFrame:n", shuffled_df)
पिछली विधियों की तरह, random_state
पुनरुत्पादन को नियंत्रित करता है। अंडरस्कोर _
दूसरे रिटर्न मान (जो एक फेरबदल सरणी होगी यदि एक प्रदान किया गया था) को त्याग देता है।
निष्कर्ष: प्रत्येक विधि प्रभावी रूप से DataFrame पंक्तियों को फेरबदल करती है। पांडास sample()
सबसे सहज है, जबकि NumPy का permutation()
अक्सर बड़े डेटासेट के लिए बेहतर प्रदर्शन प्रदान करता है। Scikit-learn का shuffle()
DataFrame और संगत सरणी के एक साथ फेरबदल के लिए आदर्श है। अपनी आवश्यकताओं के अनुसार सबसे उपयुक्त विधि चुनें और पुनरुत्पादन योग्य परिणामों के लिए हमेशा random_state
का उपयोग करें।