ان تین مفید تکنیکوں کے ساتھ پانڈوں میں ماسٹر ڈیٹا ٹرانسفارمیشن

فلٹرنگ، ہیرا پھیری اور کام کرنے میں غوطہ لگانا

کی طرف سے تصویر میلاد فکوریاں on Unsplash سے

پچھلی بار کے بارے میں سوچیں جب آپ نے ایک عمدہ فارمیٹ شدہ ڈیٹا سیٹ کے ساتھ کام کیا تھا۔ اچھے نام والے کالم، کم سے کم گم شدہ اقدار، اور مناسب تنظیم۔ یہ ایک اچھا احساس ہے — تقریباً آزاد ہو رہا ہے — ایسے ڈیٹا سے نوازا جائے جسے آپ کو صاف کرنے اور تبدیل کرنے کی ضرورت نہیں ہے۔

ٹھیک ہے، یہ اس وقت تک اچھا ہے جب تک کہ آپ اپنے دن کے خوابوں سے باہر نہ نکلیں اور اپنے سامنے ٹوٹی ہوئی قطاروں اور بے ہودہ لیبلوں کی ناامید جھنجھلاہٹ کو دوبارہ شروع نہ کریں۔

صاف ڈیٹا (اس کی اصل شکل میں) جیسی کوئی چیز نہیں ہے۔ اگر آپ ڈیٹا سائنسدان ہیں، تو آپ یہ جانتے ہیں۔ اگر آپ ابھی شروعات کر رہے ہیں، تو آپ کو اسے قبول کرنا چاہیے۔ اس کے ساتھ مؤثر طریقے سے کام کرنے کے لیے آپ کو اپنے ڈیٹا کو تبدیل کرنے کی ضرورت ہوگی۔

آئیے ایسا کرنے کے تین طریقوں کے بارے میں بات کرتے ہیں۔

فلٹرنگ - لیکن مناسب طریقے سے وضاحت کی گئی۔

آئیے فلٹرنگ کے بارے میں بات کرتے ہیں — لیکن اس سے کچھ زیادہ گہرائی سے جو آپ کرنے کے عادی ہو سکتے ہیں۔ سب سے عام اور مفید ڈیٹا ٹرانسفارمیشن آپریشنز میں سے ایک کے طور پر، مؤثر طریقے سے فلٹر کرنا کسی بھی ڈیٹا سائنسدان کے لیے ضروری مہارت ہے۔ اگر آپ پانڈوں کو جانتے ہیں، تو یہ ممکنہ طور پر ان پہلے آپریشنز میں سے ایک ہے جو آپ نے کرنا سیکھا ہے۔

آئیے، میری پسندیدہ، عجیب و غریب ورسٹائل مثال کا استعمال کرتے ہوئے جائزہ لیں: طلباء کے درجات کا ڈیٹا فریم، جسے مناسب طور پر کہا جاتا ہے۔ grades:

مصنف کی طرف سے تصویر

ہم 90 سے کم کسی بھی اسکور کو فلٹر کرنے جا رہے ہیں، کیونکہ اس دن ہم نے ناقص تربیت یافتہ اساتذہ بننے کا فیصلہ کیا ہے جو صرف اعلیٰ طلباء کو پورا کرتے ہیں (براہ کرم ایسا کبھی نہ کریں)۔ اس کو پورا کرنے کے لیے کوڈ کی معیاری لائن حسب ذیل ہے:

گریڈز[گریڈز['اسکور'] >= 90]
مصنف کی طرف سے تصویر

یہ ہمیں جیک اور ہرمیون کے ساتھ چھوڑ دیتا ہے۔ ٹھنڈا لیکن یہاں بالکل کیا ہوا؟ کیوں کیا کوڈ کی اوپر کی لائن کام کرتی ہے؟ آئیے اوپر کے بیرونی بریکٹ کے اندر اظہار کے آؤٹ پٹ کو دیکھ کر تھوڑا گہرائی میں غوطہ لگائیں:

گریڈز['اسکور']>= 90
مصنف کی طرف سے تصویر

آہ، ٹھیک ہے۔ یہ سمجھ میں آتا ہے۔ ایسا لگتا ہے کہ کوڈ کی یہ لائن پانڈاس سیریز آبجیکٹ کو واپس کرتی ہے جس میں بولین ( True / False ) قدروں کا تعین کس چیز سے ہوتا ہے۔ >= 90 ہر انفرادی قطار کے لیے واپس آیا۔ یہ اہم انٹرمیڈیٹ مرحلہ ہے۔ اس کے بعد، یہ بولین کی یہ سیریز ہے جو بیرونی بریکٹ میں داخل ہو جاتی ہے، اور اس کے مطابق تمام قطاروں کو فلٹر کرتی ہے۔

تکمیل کی خاطر، میں یہ بھی ذکر کروں گا کہ اسی طرز عمل کو استعمال کرکے حاصل کیا جاسکتا ہے۔ loc مطلوبہ الفاظ:

grades.loc[گریڈز['اسکور'] >= 90]
مصنف کی طرف سے تصویر

بہت سی وجوہات ہیں جو ہم استعمال کرنے کا انتخاب کر سکتے ہیں۔ loc (جن میں سے ایک یہ ہے کہ یہ دراصل ہمیں ایک ہی آپریشن کے ذریعے قطاروں اور کالموں کو فلٹر کرنے کی اجازت دیتا ہے)، لیکن اس سے پانڈاس آپریشنز کا ایک پنڈورا باکس کھل جاتا ہے جسے کسی اور مضمون پر چھوڑ دیا جاتا ہے۔

ابھی کے لیے، اہم سیکھنے کا مقصد یہ ہے: جب ہم پانڈوں میں فلٹر کرتے ہیں، تو الجھا ہوا نحو کوئی عجیب سا جادو نہیں ہوتا۔ ہمیں اسے اس کے دو جزوی مراحل میں تقسیم کرنے کی ضرورت ہے: 1) قطاروں کی بولین سیریز حاصل کرنا جو ہماری حالت کو پورا کرتی ہے، اور 2) پورے ڈیٹا فریم کو فلٹر کرنے کے لیے سیریز کا استعمال کرنا۔

یہ کیوں مفید ہے، آپ پوچھ سکتے ہیں؟ ٹھیک ہے، عام طور پر، اگر آپ صرف یہ سمجھے بغیر کہ وہ اصل میں کیسے کام کرتے ہیں آپریشنز کا استعمال کرتے ہیں تو اس سے مبہم کیڑے پیدا ہونے کا امکان ہے۔ فلٹرنگ ایک مفید اور ناقابل یقین حد تک عام عمل ہے، اور اب آپ جانتے ہیں کہ یہ کیسے کام کرتا ہے۔

چلیں آگے بڑھیں۔

لیمبڈا کے افعال کی خوبصورتی۔

بعض اوقات، آپ کے ڈیٹا کو ایسی تبدیلیوں کی ضرورت ہوتی ہے جو پانڈوں کی فعالیت میں بلٹ ان نہیں ہوتے ہیں۔ جتنا ہو سکے کوشش کریں، اسٹیک اوور فلو کو اسکور کرنے یا پانڈا دستاویزات کو تندہی سے تلاش کرنے سے آپ کے مسئلے کا کوئی حل سامنے نہیں آتا۔

لیمبڈا فنکشنز درج کریں - ایک مفید زبان کی خصوصیت جو پانڈوں کے ساتھ خوبصورتی سے مربوط ہوتی ہے۔

ایک فوری جائزہ کے طور پر، یہ ہے کہ لیمبڈاس کیسے کام کرتا ہے:

>>> add_function = lambda x, y: x + y
>>> add_function(2, 3)
5

لیمبڈا فنکشنز ریگولر فنکشنز سے مختلف نہیں ہیں، سوائے اس حقیقت کے کہ ان کا زیادہ جامع نحو ہے:

  • مساوی نشان کے بائیں طرف فنکشن کا نام
  • ۔ lambda مساوی نشان کے دائیں طرف کلیدی لفظ (اسی طرح def روایتی Python فنکشن کی تعریف میں کلیدی لفظ، اس سے Python کو معلوم ہوتا ہے کہ ہم ایک فنکشن کی تعریف کر رہے ہیں)۔
  • کے بعد پیرامیٹر lambda کلیدی لفظ، بڑی آنت کے بائیں طرف۔
  • بڑی آنت کے دائیں طرف قدر واپس کریں۔

اب، آئیے لیمبڈا فنکشنز کو ایک حقیقت پسندانہ صورتحال پر لاگو کریں۔

ڈیٹا سیٹس میں اکثر اپنے فارمیٹنگ نرالا ہوتے ہیں، جو ڈیٹا کے اندراج اور جمع کرنے میں تغیرات کے لیے مخصوص ہوتے ہیں۔ نتیجے کے طور پر، آپ جس ڈیٹا کے ساتھ کام کر رہے ہیں اس میں عجیب و غریب مخصوص مسائل ہو سکتے ہیں جن کو حل کرنے کی آپ کو ضرورت ہے۔ مثال کے طور پر، نیچے دیے گئے سادہ ڈیٹا پر غور کریں، جو لوگوں کے نام اور ان کی آمدنی کو محفوظ کرتا ہے۔ آئیے اسے کال کریں۔ monies.

مصنف کی طرف سے تصویر

اب، اس کمپنی کے ماسٹر ڈیٹا ہائینسز کے طور پر، ہمیں کچھ سرفہرست خفیہ معلومات دی گئی ہیں: اس کمپنی میں ہر کسی کو 10% اضافہ کے علاوہ ایک اضافی $1000 دیا جائے گا۔ یہ شاید ایک خاص طریقہ تلاش کرنے کے لیے حساب سے بہت مخصوص ہے، لیکن لیمبڈا فنکشن کے ساتھ کافی سیدھا ہے:

update_income = lambda num: num + (num * .10) + 1000

پھر، ہمیں صرف اس فنکشن کو پانڈوں کے ساتھ استعمال کرنے کی ضرورت ہے۔ apply فنکشن، جو ہمیں منتخب سیریز کے ہر عنصر پر فنکشن لاگو کرنے دیتا ہے۔

پیسے['نئی آمدنی'] = پیسے['آمدنی']۔ اپلائی کریں(اپ ڈیٹ_آمدنی)
پیسے
مصنف کی طرف سے تصویر

اور ہم کر چکے ہیں! ایک شاندار نیا ڈیٹا فریم جو بالکل وہی معلومات پر مشتمل ہے جس کی ہمیں ضرورت ہے، سبھی کوڈ کی دو لائنوں میں۔ اسے اور بھی جامع بنانے کے لیے، ہم اس کے اندر لیمبڈا فنکشن کی تعریف بھی کر سکتے تھے۔ apply براہ راست - ذہن میں رکھنے کے قابل ایک ٹھنڈی ٹپ۔

میں یہاں بات کو سادہ رکھوں گا۔

Lambdas انتہائی مفید ہیں، اور اس طرح، آپ کو ان کا استعمال کرنا چاہئے. لطف اٹھائیں!

سیریز سٹرنگ ہیرا پھیری کے افعال

پچھلے حصے میں، ہم نے لیمبڈا فنکشنز کی استعداد اور ان تمام عمدہ چیزوں کے بارے میں بات کی جو وہ آپ کے ڈیٹا کو پورا کرنے میں آپ کی مدد کر سکتی ہیں۔ یہ بہترین ہے، لیکن آپ کو ہوشیار رہنا چاہئے کہ آپ بہہ نہ جائیں۔ یہ ناقابل یقین حد تک عام ہے کہ کام کرنے کے ایک مانوس طریقے سے اس قدر پھنس جانا کہ آپ آسان شارٹ کٹس سے محروم رہ جاتے ہیں جن سے Python نے پروگرامرز کو برکت دی ہے۔ یہ صرف لیمبڈا سے زیادہ پر لاگو ہوتا ہے، یقینا، لیکن ہم اس لمحے کے ساتھ رہیں گے.

مثال کے طور پر، ہم کہتے ہیں کہ ہمارے پاس درج ذیل ڈیٹا فریم ہے۔ names جو لوگوں کے پہلے اور آخری نام محفوظ کرتا ہے:

مصنف کی طرف سے تصویر

اب، ہمارے ڈیٹا بیس میں جگہ کی محدودیت کی وجہ سے، ہم فیصلہ کرتے ہیں کہ کسی شخص کا پورا آخری نام ذخیرہ کرنے کے بجائے، اس کے آخری نام کو محفوظ کرنا زیادہ کارآمد ہے۔ اس طرح، ہمیں تبدیل کرنے کی ضرورت ہے 'Last Name' اس کے مطابق کالم. لیمبڈاس کے ساتھ، ایسا کرنے کی ہماری کوشش کچھ اس طرح نظر آسکتی ہے:

نام['آخری نام'] = نام['آخری نام']۔ اپلائی کریں(lambda s: s[:1])
نام
مصنف کی طرف سے تصویر

یہ واضح طور پر کام کرتا ہے، لیکن یہ تھوڑا سا پیچیدہ ہے، اور اس وجہ سے یہ Pythonic نہیں جتنا ہوسکتا ہے۔ خوش قسمتی سے، پانڈوں میں سٹرنگ ہیرا پھیری کے افعال کی خوبصورتی کے ساتھ، ایک اور، زیادہ خوبصورت طریقہ ہے (کوڈ کی اگلی لائن کے مقصد کے لیے، ذرا آگے بڑھیں اور فرض کریں کہ ہم نے پہلے ہی تبدیل نہیں کیا ہے 'Last Name' مندرجہ بالا کوڈ کے ساتھ کالم):

نام['آخری نام'] = نام['آخری نام']۔str[:1]
نام
مصنف کی طرف سے تصویر

ٹا-ڈا! دی .str پانڈاس سیریز کی پراپرٹی ہمیں سیریز میں ہر اسٹرنگ کو ایک مخصوص سٹرنگ آپریشن کے ساتھ الگ کرنے دیتی ہے، بالکل اسی طرح جیسے ہم ہر اسٹرنگ کے ساتھ انفرادی طور پر کام کر رہے ہوں۔

لیکن انتظار کرو، یہ بہتر ہو جاتا ہے. چونکہ .str مؤثر طریقے سے ہمیں سیریز کے ذریعے سٹرنگ کی عام فعالیت تک رسائی حاصل کرنے دیتا ہے، ہم اپنے ڈیٹا کو تیزی سے پروسیس کرنے میں مدد کے لیے سٹرنگ فنکشنز کی ایک رینج بھی لاگو کر سکتے ہیں! مثال کے طور پر، کہتے ہیں کہ ہم دونوں کالموں کو چھوٹے حروف میں تبدیل کرنے کا فیصلہ کرتے ہیں۔ درج ذیل کوڈ کام کرتا ہے:

نام['First Name'] = نام['First Name'].str.lower()
نام['آخری نام'] = نام['آخری نام'].str.lower()
نام
مصنف کی طرف سے تصویر

اپنے لیمبڈا فنکشنز کی وضاحت کرنے اور اس کے اندر اسٹرنگ فنکشنز کو کال کرنے کی پریشانی سے گزرنے سے کہیں زیادہ سیدھا ہے۔ ایسا نہیں ہے کہ میں لیمبڈاس سے محبت نہیں کرتا — لیکن ہر چیز کی اپنی جگہ ہے، اور Python میں ہمیشہ سادگی کو ترجیح دینی چاہیے۔

میں نے یہاں صرف چند مثالوں کا احاطہ کیا ہے، لیکن سٹرنگ فنکشنز کا ایک بڑا مجموعہ آپ کے اختیار میں ہے۔ [1].

انہیں آزادانہ طور پر استعمال کریں۔ وہ بہترین ہیں۔

حتمی خیالات اور خلاصہ

آپ کے لیے ڈیٹا ٹرانسفارمیشن کی ایک چھوٹی سی شیٹ یہ ہے:

  1. جیسا کہ آپ کا مطلب ہے فلٹر کریں۔. جانیں کہ واقعی کیا ہو رہا ہے تاکہ آپ کو معلوم ہو کہ آپ کیا کر رہے ہیں۔
  2. اپنے لیمبڈاس سے پیار کریں۔. وہ حیرت انگیز طریقوں سے ڈیٹا میں ہیرا پھیری کرنے میں آپ کی مدد کر سکتے ہیں۔
  3. پانڈوں کو تاروں سے اتنا ہی پیار ہے جتنا آپ کرتے ہیں۔. بہت ساری بلٹ ان فعالیت ہے - آپ اسے بھی استعمال کر سکتے ہیں۔

یہاں ایک حتمی مشورہ ہے: ڈیٹا سیٹ کو فلٹر کرنے کا کوئی "درست" طریقہ نہیں ہے۔ یہ ہاتھ میں موجود ڈیٹا کے ساتھ ساتھ اس منفرد مسئلے پر بھی منحصر ہے جسے آپ حل کرنا چاہتے ہیں۔ تاہم، اگرچہ کوئی مقررہ طریقہ نہیں ہے جس کی آپ ہر بار پیروی کر سکتے ہیں، آپ کے اختیار میں رکھنے کے قابل ٹولز کا ایک مفید ذخیرہ موجود ہے۔ اس مضمون میں، میں نے ان میں سے تین پر بات کی۔

میں آپ کو باہر جانے اور کچھ اور تلاش کرنے کی ترغیب دیتا ہوں۔

حوالہ جات

[1] https://www.aboutdatablog.com/post/10-most-useful-string-functions-in-pandas

ماخذ https://towardsdatascience.com/master-data-transformation-in-pandas-with-these-three-useful-techniques-20699f03e51d?source=rss—-7f60cf5620c سے دوبارہ شائع کردہ ان تین مفید تکنیکوں کے ساتھ پانڈوں میں ماسٹر ڈیٹا ٹرانسفارمیشن 9 بذریعہ https://towardsdatascience.com/feed

<!–

->

ٹائم اسٹیمپ:

سے زیادہ بلاکچین کنسلٹنٹس