डेटा का अभाव, जिसे अक्सर NaN
(नॉट ए नंबर) मानों के रूप में दर्शाया जाता है, डेटा विश्लेषण में एक प्रचलित समस्या है। पैंडस, डेटा हेरफेर के लिए एक शक्तिशाली पाइथन लाइब्रेरी, इन लापता मानों को संभालने के लिए कुशल तरीके प्रदान करता है। यह लेख दर्शाता है कि किसी विशिष्ट कॉलम या संपूर्ण पंडास डेटाफ्रेम के भीतर सभी NaN
मानों को शून्य से कैसे बदला जाए, सबसे प्रभावी तरीकों पर ध्यान केंद्रित करते हुए।
विषयवस्तु की तालिका
लक्षित NaN प्रतिस्थापन के लिए fillna()
विधि
विशिष्ट कॉलम में NaN
मानों को शून्य से बदलने के लिए fillna()
विधि अनुशंसित दृष्टिकोण है। यह कुशल है और सीधे लापता डेटा को संबोधित करता है।
आइए एक नमूना डेटाफ्रेम के साथ चित्रण करें:
import pandas as pd
import numpy as np
data = {'A': [1, 2, np.nan, 4, 5],
'B': [6, np.nan, 8, 9, 10],
'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)
print("मूल डेटाफ्रेम:n", df)
यह उत्पन्न करता है:
मूल डेटाफ्रेम:
A B C
0 1.0 6.0 11
1 2.0 NaN 12
2 NaN 8.0 13
3 4.0 9.0 14
4 5.0 10.0 15
कॉलम ‘A’ में NaN
मानों को शून्य से बदलने के लिए:
df['A'] = df['A'].fillna(0)
print("nकॉलम 'A' में NaN को 0 से भरने के बाद डेटाफ्रेम:n", df)
परिणामस्वरूप:
कॉलम 'A' में NaN को 0 से भरने के बाद डेटाफ्रेम:
A B C
0 1.0 6.0 11
1 2.0 NaN 12
2 0.0 8.0 13
3 4.0 9.0 14
4 5.0 10.0 15
अनेक कॉलम में NaN
को बदलना उतना ही सरल है:
df[['A', 'B']] = df[['A', 'B']].fillna(0)
print("nकॉलम 'A' और 'B' में NaN को 0 से भरने के बाद डेटाफ्रेम:n", df)
सामान्य मान प्रतिस्थापन के लिए replace()
विधि
replace()
विधि एक अधिक सामान्य दृष्टिकोण प्रदान करती है, जो विभिन्न मानों को बदलने के लिए उपयुक्त है, जिसमें NaN
भी शामिल है। हालाँकि, केवल NaN
को शून्य से बदलने के लिए, fillna()
को आम तौर पर इसकी दक्षता और स्पष्टता के लिए प्राथमिकता दी जाती है।
replace()
का उपयोग करके डेटाफ्रेम में सभी NaN
मानों को 0 से बदलने के लिए:
df = df.replace(np.nan, 0)
print("nreplace() का उपयोग करके सभी NaN को 0 से बदलने के बाद डेटाफ्रेम:n", df)
यह पूरे डेटाफ्रेम में सभी NaN
मानों को बदल देता है। जब अधिक जटिल परिदृश्यों को संभालना होता है, जैसे कि एक साथ कई मानों को बदलना, तो replace()
बेहतर प्रदर्शन करता है:
df = df.replace({np.nan: 0, -999: 0}) # उदाहरण; मान लेता है कि -999 डेटाफ्रेम में मौजूद है
print("nNaN और -999 को 0 से बदलने के बाद डेटाफ्रेम:n", df)
संक्षेप में, जबकि दोनों विधियाँ लक्ष्य प्राप्त करती हैं, विशिष्ट कॉलम के भीतर लक्षित NaN प्रतिस्थापन के लिए fillna()
अधिक कुशल और पठनीय है, जबकि replace()
व्यापक मान प्रतिस्थापन के लिए अधिक लचीलापन प्रदान करता है। अपने विशिष्ट डेटा हेरफेर कार्य के लिए सबसे उपयुक्त विधि चुनें।