چگونه نوآوری در فناوری توانمندسازی بخش توسعه برنامه است؟ 1

چگونه از چارچوب داده پاندا خود پرس و جو کنید

گره منبع: 1017694

چگونه از چارچوب داده پاندا خود پرس و جو کنید

دیدگاه یک دانشمند داده در مورد توابع Python مانند SQL.


By متیو پرزیبیلا، دانشمند ارشد داده در Favor Delivery



عکس بروس هونگ on می Unsplash [1].

فهرست مندرجات

 
 

  1. معرفی
  2. شرایط چندگانه
  3. ادغام در چندین ستون خاص
  4. خلاصه
  5. منابع

معرفی

 
 
چه در حال انتقال از یک مهندس داده/تحلیلگر داده باشید و چه می‌خواهید به یک دانشمند داده کارآمدتر تبدیل شوید، پرس و جو از چارچوب داده شما می‌تواند روشی کاملاً مفید برای بازگرداندن ردیف‌های خاص مورد نظر شما باشد. توجه به این نکته مهم است که یک تابع پرس و جوی خاص برای پانداها وجود دارد که نام مناسبی دارد. query. با این حال، من در عوض روش‌های دیگری را که می‌توانید از پرس‌وجو، فیلتر کردن و ادغام داده‌های خود تقلید کنید، بحث خواهم کرد. ما سناریوها یا سوالات رایجی را که از داده‌های خود می‌پرسید ارائه می‌کنیم، و به جای SQL، آن را با پایتون انجام خواهیم داد. در پاراگراف های زیر، چند روش ساده برای پرس و جوی ردیف ها برای چارچوب داده پانداهای شما با زبان برنامه نویسی پایتون را شرح می دهم.

شرایط چندگانه

 
 



داده های نمونه. تصویر از نویسنده [2].

 

به عنوان دانشمندان داده یا تحلیلگران داده، ما می خواهیم ردیف های خاصی از داده ها را برگردانیم. یکی از این سناریوها جایی است که می خواهید چندین شرط را اعمال کنید، همه در یک خط کد. برای نمایش مثال خود، تعدادی داده نمونه جعلی از نام و نام خانوادگی و همچنین جنسیت و تاریخ تولد مربوطه آنها را ایجاد کرده ام. این داده ها در تصویر بالا نمایش داده می شوند.

شرایط چندگانه مثال اساساً به یک سؤال خاص پاسخ می دهد، درست مانند زمانی که از SQL استفاده می کنید. سوال این است که چند درصد از داده های ما جنسیت مرد است OR فردی که بین سال های 2010 تا 2021 به دنیا آمده است.

این کدی است که این سوال را حل می کند (چند راه برای پاسخ به این سوال وجود دارد، اما در اینجا روش خاص من برای انجام آن است):

print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)

برای تجسم بهتر این کد، این اسکرین شات از همان کد را به همراه خروجی/نتیجه از بالا نیز قرار داده ام. همچنین می‌توانید این شرایط را برای برگرداندن ردیف‌های واقعی به‌جای برداشتن کسری یا درصد ردیف‌ها از کل ردیف‌ها اعمال کنید.



کد شرایط اسکرین شات توسط نویسنده [3].

 

ترتیب دستوراتی که ما انجام دادیم در اینجا آمده است:

  • سطرها را با Male برگردانید Gender
  • را وارد کنید OR تابع |
  • سطرهای را برگردانید Birthdate > 2010 و 2021
  • همه آن ها را با هم ترکیب کنید و سپس بر تعداد کل ردیف ها تقسیم کنید

همانطور که می بینید، این کد مشابه چیزی است که در SQL می بینید. من شخصاً فکر می کنم در پانداها راحت تر است زیرا می تواند کد کمتری داشته باشد، در حالی که می تواند به صورت بصری همه کدها را در یک نقطه آسان و بدون نیاز به اسکرول کردن بالا و پایین (اما این قالب فقط ترجیح من است).

ادغام در چندین ستون خاص

 
 



نتیجه دیتافریم ادغام شده اسکرین شات توسط نویسنده [4].

 

احتمالاً در آموزش‌های دیگر نحوه ادغام دیتافریم‌ها را با یکدیگر دیده‌ایم، بنابراین من می‌خواستم یک رویکرد منحصر به فرد را اضافه کنم که واقعاً در آنجا ندیده‌ام، که ادغام در چندین ستون خاص است. در این سناریو، می‌خواهیم دو دیتافریم را به هم بپیوندیم که دو فیلد بین آنها به اشتراک گذاشته شده است. می توانید بگویید که اگر ستون های بیشتری وجود داشته باشد، این روش می تواند حتی مفیدتر باشد.

ما اولین دیتافریم خود را داریم که df است، سپس ستون های خود را روی یک دیتافریم دوم، df2 ادغام می کنیم. این کد برای دستیابی به نتیجه مورد انتظار ما است:

merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )

برای تجسم بهتر این ادغام و کد، تصویر زیر را ارائه کرده ام. در زیر می بینید که دیتافریم دوم چگونه است First و Last نام ها، درست مانند آنها در اولین دیتافریم، اما با یک ستون جدید، Numeric. سپس، ستون‌های خاصی داریم که می‌خواهیم در آن‌ها ادغام کنیم، در حالی که ستون‌ها را برمی‌گردانیم GenderBirthdate، و جدید Numeric ستون نیز ستون ها لیستی از ستون ها هستند که نامگذاری شده است cols.



ادغام چارچوب داده اسکرین شات توسط نویسنده [5].

 

همانطور که می بینید، این روش ادغام فریم های داده یک راه ساده برای دستیابی به همان نتایجی است که از پرس و جوی SQL دریافت می کنید.

خلاصه

 
 
در این آموزش، دو سوال یا پرس و جو متداول را دیدیم که در SQL انجام می‌دادید، اما در عوض، آن‌ها را با دیتافریم‌های پاندا در پایتون انجام داده‌اید.

به طور خلاصه، در اینجا دو سناریویی که با آنها کار کردیم آورده شده است:

  1. برگرداندن درصد ردیف ها از کل مجموعه داده از شرایط چندگانه
  2. ادغام چندین ستون خاص برای بازگشت یک دیتافریم نهایی با یک ستون جدید

امیدوارم مقاله من برای شما جالب و مفید بوده باشد. لطفاً در صورت موافقت یا مخالفت با این روش‌ها، نظر خود را در پایین زیر بیان کنید. چرا و چرا نه؟ مطمئناً می‌توان این موارد را حتی بیشتر توضیح داد، اما امیدوارم بتوانم برخی از راه‌هایی را که می‌توانید از پانداها و پایتون به جای SQL استفاده کنید، روشن کنم. با تشکر از شما برای خواندن!

لطفا به پروفایل من سر بزنید، مت پرزیبیلاو مقالات دیگر، و همچنین در لینکدین با من تماس بگیرید.

من به این شرکت ها وابسته نیستم.

 
منابع

[1] عکس توسط بروس هونگ on می Unsplash(2018)

[2] M. Przybyla، نمونه اسکرین شات داده، (2021)

[3] M. Przybyla، اسکرین شات کد شرایط، (2021)

[4] M. Przybyla، اسکرین شات نتیجه دیتافریم ادغام شده، (2021)

[5] M. Przybyla، ادغام اسکرین شات قاب داده، (2021)

 
بیوگرافی: متیو پرزیبیلا دانشمند ارشد داده در Favor Delivery و یک نویسنده فنی مستقل، به ویژه در علم داده است.

اصلی. مجدداً با اجازه دوباره ارسال شد.

مرتبط:

منبع: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

تمبر زمان:

بیشتر از kdnuggets