কম্পিউটার

পান্ডাসে এসকিউএল কোয়েরি স্টাইলে ডেটার উপসেটগুলি কীভাবে নির্বাচন করবেন?


পরিচয়

এই পোস্টে, আমি আপনাকে দেখাব কিভাবে ডাটা অ্যানালাইসিস করতে হয় এসকিউএল স্টাইল ফিল্টারিং এর সাথে পান্ডাদের সাথে। কর্পোরেট কোম্পানির বেশিরভাগ ডেটা ডেটাবেসে সংরক্ষিত থাকে যেগুলি পুনরুদ্ধার করতে এবং এটিকে ম্যানিপুলেট করতে SQL এর প্রয়োজন হয়। উদাহরণ স্বরূপ, ওরাকল, আইবিএম, মাইক্রোসফটের মত কোম্পানী আছে যাদের নিজস্ব এসকিউএল বাস্তবায়ন সহ তাদের নিজস্ব ডাটাবেস রয়েছে।

ডেটা বিজ্ঞানীদের তাদের কর্মজীবনের কিছু পর্যায়ে এসকিউএল মোকাবেলা করতে হয় কারণ ডেটা সবসময় CSV ফাইলগুলিতে সংরক্ষণ করা হয় না। আমি ব্যক্তিগতভাবে ওরাকল ব্যবহার করতে পছন্দ করি, কারণ আমার কোম্পানির বেশিরভাগ ডেটা ওরাকল-এ সংরক্ষিত থাকে।

দৃশ্যকল্প – 1 ধরুন আমাদের একটি কাজ দেওয়া হয়েছে আমাদের চলচ্চিত্র ডেটাসেট থেকে নীচের শর্তে সমস্ত মুভি খুঁজে বের করার জন্য৷

  • চলচ্চিত্রের ভাষা হতে হবে ইংরেজি(en) অথবা স্প্যানিশ(es)।
  • চলচ্চিত্রের জনপ্রিয়তা অবশ্যই 500 থেকে 1000 এর মধ্যে হতে হবে।
  • চলচ্চিত্রের স্ট্যাটাস অবশ্যই প্রকাশ করতে হবে।
  • ভোটের সংখ্যা অবশ্যই 5000-এর বেশি হতে হবে। উপরের দৃশ্যের জন্য, SQL স্টেটমেন্ট নিচের মত দেখতে হবে।
যেখান থেকে মুভি_শিরোনাম হিসেবে, মূল_ভাষা হিসেবে মুভি_ভাষা, জনপ্রিয়তা হিসেবে চলচ্চিত্র_জনপ্রিয়তা, চলচ্চিত্র_স্ট্যাটাস, ভোট_গণনা হিসেবে চলচ্চিত্র_ভোট_গণনা চলচ্চিত্রের_ডেটাঅরিজিনাল_ভাষাIN ('en', 'es')এবং জনপ্রিয়তা হিসেবে নির্বাচন করুন। পূর্বে> 

এখন আপনি প্রয়োজনীয়তার জন্য SQL দেখেছেন, আসুন পান্ডা ব্যবহার করে ধাপে ধাপে এই কাজটি করি। আমি আপনাকে দুটি পদ্ধতি দেখাব।

পদ্ধতি 1:- বুলিয়ান ইনডেক্সিং

1. মুভি_ডেটা ডেটাসেট ডেটাফ্রেমে লোড করুন।

pd চলচ্চিত্র হিসাবে পান্ডা আমদানি করুন =pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv")

প্রতিটি শর্তের জন্য একটি পরিবর্তনশীল বরাদ্দ করুন।

ভাষা =[ "en" , "es" ] condition_on_languages ​​=চলচ্চিত্র। মূল_ভাষা। isin (ভাষা) শর্ত_অন_স্ট্যাটাস =চলচ্চিত্র। অবস্থা =="রিলিজড" শর্ত_অন_জনপ্রিয়তা =চলচ্চিত্র। জনপ্রিয়তা মধ্যে ( 500 , 1000 ) শর্ত_অন_ভোটকাউন্ট =চলচ্চিত্র। ভোট_গণনা> 5000

3. সমস্ত শর্ত (বুলিয়ান অ্যারে) একসাথে একত্রিত করুন৷

final_conditions =( condition_on_languages ​​&condition_on_status &condition_on_popularity &condition_on_votecount )কলাম =[ "শিরোনাম" , "মৌলিক_ভাষা" , "স্থিতি" , "জনপ্রিয়তা" , "ভোট_সংখ্যা" #টি সিনেমা একসাথে একসাথে। loc [ final_conditions , columns ]


শিরোনাম
মূল_ভাষা
স্থিতি
জনপ্রিয়তা
ভোট_গণনা
95 ইন্টারস্টেলার
en
মুক্ত করা হয়েছে
724.247784
10867
788Deadpool
en
মুক্ত করা হয়েছে
514.569956
10995


পদ্ধতি 2:- .query() পদ্ধতি।

.query() পদ্ধতি হল একটি এসকিউএল যেখানে ডেটা ফিল্টার করার ক্লজ স্টাইল পদ্ধতি। শর্তগুলি এই পদ্ধতিতে একটি স্ট্রিং হিসাবে পাস করা যেতে পারে, তবে, কলামের নামগুলিতে কোনও স্পেস থাকা উচিত নয়৷

যদি আপনার কলামের নামে স্পেস থাকে, তাহলে পাইথন রিপ্লেস ফাংশন ব্যবহার করে আন্ডারস্কোর দিয়ে প্রতিস্থাপন করুন।

আমার অভিজ্ঞতা থেকে আমি দেখেছি query() পদ্ধতি যখন একটি বড় ডেটাফ্রেমে প্রয়োগ করা হয় তখন আগের পদ্ধতির চেয়ে দ্রুত হয়৷

pd সিনেমা হিসেবে পান্ডা আমদানি করুন =pd। read_csv ( "https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv" )

4. ক্যোয়ারী স্ট্রিং তৈরি করুন এবং পদ্ধতিটি চালান।

মনে রাখবেন .query পদ্ধতিটি একাধিক লাইন বিস্তৃত ট্রিপল উদ্ধৃত স্ট্রিংগুলির সাথে কাজ করে না৷

final_conditions =("মূল_ভাষা ['en','es']"""এবং স্থিতি =='রিলিজ' ""এবং জনপ্রিয়তা> 500 ""এবং জনপ্রিয়তা <1000""এবং ভোট_গণনা> 5000") final_result =চলচ্চিত্র . প্রশ্ন ( চূড়ান্ত_ শর্ত ) চূড়ান্ত_ ফলাফল 


<থ>ম

বাজেট
আইডি
মূল_ভাষা
মূল_শিরোনাম
জনপ্রিয়তা
মুক্তির_তারিখ
রাজস্ব
রানটাইম
95
165000000
157336
en
ইন্টারস্টেলার
724.247784
5/11/2014
675120017
169.0
রিলে
788
58000000
293660
en
ডেডপুল
514.569956
9/02/2016
783112979
108.0
রিলে


আরও আছে, প্রায়শই আমার কোডিং-এ, আমার “ইন” ক্লজে চেক করার জন্য আমার একাধিক মান থাকে। তাই উপরের সিনট্যাক্সটি কাজ করার জন্য আদর্শ নয়। at চিহ্ন (@) ব্যবহার করে পাইথন ভেরিয়েবল উল্লেখ করা সম্ভব।

এছাড়াও আপনি প্রোগ্রামগতভাবে একটি পাইথন তালিকা হিসাবে মানগুলি তৈরি করতে পারেন এবং সেগুলিকে (@) এর সাথে ব্যবহার করতে পারেন৷

movie_languages ​​=[ 'en' , 'es' ]final_conditions =("@movie_languages-এ মূল_ভাষা"" এবং স্থিতি =='রিলিজ' ""এবং জনপ্রিয়তা> 500 "" এবং জনপ্রিয়তা <1000""এবং ভোট_গণনা> 5000" )ফাইনাল_ফলাফল =সিনেমা। প্রশ্ন ( চূড়ান্ত_ শর্ত ) চূড়ান্ত_ ফলাফল 


<থ>ম

বাজেট
আইডি
মূল_ভাষা
মূল_শিরোনাম
জনপ্রিয়তা
মুক্তির_তারিখ
রাজস্ব
রানটাইম
95
165000000
157336
en
ইন্টারস্টেলার
724.247784
5/11/2014
675120017
169.0
রিলে
788
58000000
293660
en
ডেডপুল
514.569956
9/02/2016
783112979
108.0
রিলে

  1. স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ (SQL)

  2. Android sqlite এ SELECT Query কিভাবে ব্যবহার করবেন?

  3. পাইথন পান্ডাসে ইনডেক্স লেবেল সহ ডেটার উপসেট কীভাবে নির্বাচন করবেন?

  4. বিঘ্ন ছাড়াই কীভাবে একটি রেডিস এসকিউএল কোয়েরি চালাবেন