Data Wrangling

Pandas डेटाफ्रेम में दक्षतापूर्ण फ्लोट-टू-इंटीजर रूपांतरण

Spread the love

पांडा डेटा हेरफेर के लिए एक शक्तिशाली पायथन लाइब्रेरी है, जिसका उपयोग अक्सर संख्यात्मक डेटा वाले डेटाफ्रेम के साथ किया जाता है। एक सामान्य कार्य में फ़्लोटिंग-पॉइंट संख्याओं (फ़्लोट्स) के कॉलम को पूर्णांकों में परिवर्तित करना शामिल है। यह लेख पांडा डेटाफ्रेम के भीतर इस रूपांतरण के लिए कुशल विधियों का विवरण देता है, उनकी ताकत और कमजोरियों को उजागर करता है।

विषयवस्तु की तालिका

फ़्लोट-टू-इंट रूपांतरण के लिए astype(int) का उपयोग करना

astype(int) विधि पांडा में प्रकार रूपांतरण के लिए एक सीधा तरीका प्रदान करती है। यह सीधे किसी कॉलम के डेटा प्रकार को पूर्णांक में बदल देता है। हालाँकि, इसके व्यवहार को समझना महत्वपूर्ण है: यह दशमलव भाग को काट देता है, प्रभावी रूप से एक फ़्लोर ऑपरेशन करता है। इसका मतलब है कि यह भिन्नात्मक घटक को छोड़ देता है, हमेशा नीचे की ओर गोल करता है।

उदाहरण:


import pandas as pd

data = {'col1': [1.5, 2.7, 3.2, 4.9, 5.1]}
df = pd.DataFrame(data)

df['col1_int'] = df['col1'].astype(int)
print(df)

आउटपुट:


   col1  col1_int
0   1.5         1
1   2.7         2
2   3.2         3
3   4.9         4
4   5.1         5

इस विधि की सादगी इसका लाभ है, लेकिन इसके अनम्य गोलाई व्यवहार इसकी प्रयोज्यता को सीमित करते हैं जब अन्य गोलाई रणनीतियों की आवश्यकता होती है।

लचीले रूपांतरण के लिए pd.to_numeric() का लाभ उठाना

pd.to_numeric() अधिक नियंत्रण और लचीलापन प्रदान करता है। जबकि मुख्य रूप से विभिन्न डेटा प्रकारों को संख्यात्मक स्वरूपों में परिवर्तित करने के लिए डिज़ाइन किया गया है, यह फ़्लोट-टू-इंट रूपांतरणों के लिए अत्यधिक प्रभावी है, खासकर जब गोलाई कार्यों के साथ संयुक्त किया जाता है।

गोलाई के साथ उदाहरण:


import pandas as pd
import numpy as np

data = {'col1': [1.5, 2.7, 3.2, 4.9, 5.1, np.nan]}
df = pd.DataFrame(data)

df['col1_int'] = pd.to_numeric(df['col1'], errors='coerce').round().astype(int)
print(df)

आउटपुट:


   col1  col1_int
0   1.5         2
1   2.7         3
2   3.2         3
3   4.9         5
4   5.1         5
5   NaN        NaN

यहाँ, errors='coerce' गैर-संख्यात्मक मानों को NaN में परिवर्तित करके इन्हें सुचारू रूप से संभालता है। round() अंतिम astype(int) रूपांतरण से पहले निकटतम पूर्णांक तक गोल करता है।

त्रुटि हैंडलिंग और उन्नत गोलाई

गोलाई पर अधिक सटीक नियंत्रण के लिए, NumPy के कार्यों का उपयोग करें:

  • np.floor(): निकटतम पूर्णांक तक नीचे की ओर गोल करता है।
  • np.ceil(): निकटतम पूर्णांक तक ऊपर की ओर गोल करता है।

pd.to_numeric() में errors पैरामीटर का उपयोग करके संभावित त्रुटियों (जैसे गैर-संख्यात्मक मान) को संभालना याद रखें। 'coerce' चुनने से समस्याग्रस्त मानों को NaN से बदल दिया जाता है, जिससे त्रुटियों को रोका जा सकता है। वैकल्पिक रूप से, 'raise' एक अपवाद उठाएगा, और 'ignore' गैर-संख्यात्मक मानों को अछूता छोड़ देगा।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *