কম্পিউটার

কিভাবে regexp এবং datatypes ব্যবহার করে একাধিক DataFrame কলাম নির্বাচন করবেন


ডাটাফ্রেমকে স্প্রেডশীটে রাখা একটি ডেটা সেট বা সারি এবং কলাম সহ একটি ডাটাবেসের সাথে তুলনা করা যেতে পারে। ডেটাফ্রেম হল একটি 2D অবজেক্ট।

ঠিক আছে, 1D এবং 2D পরিভাষা নিয়ে বিভ্রান্ত?

1D (সিরিজ) এবং 2D (ডেটাফ্রেম) এর মধ্যে প্রধান পার্থক্য হল যেকোন একক ডেটা পয়েন্টে পৌঁছানোর জন্য আপনাকে যতগুলি তথ্যের প্রয়োজন হবে তার সংখ্যা। আপনি যদি একটি সিরিজের একটি উদাহরণ নেন, এবং একটি মান বের করতে চান, তাহলে আপনার শুধুমাত্র একটি পয়েন্ট অব রেফারেন্স অর্থাৎ সারি সূচক প্রয়োজন৷

একটি টেবিলের (ডেটাফ্রেম) সাথে তুলনা করে, একটি তথ্য বিন্দুতে যাওয়ার জন্য রেফারেন্সের একটি পয়েন্ট যথেষ্ট নয়, আপনার সারি মান এবং কলামের মানের একটি ছেদ প্রয়োজন৷

নিচের স্নিপেট দেখায় কিভাবে একটি csv ফাইল থেকে একটি পান্ডাস ডেটাফ্রেম তৈরি করতে হয়।

ডিফল্টরূপে .read_csv() পদ্ধতি একটি ডেটাফ্রেম তৈরি করে। আপনি মুভি অনুসন্ধান করে kaggle.com থেকে মুভি ডেটাসেট ডাউনলোড করতে পারেন।

"""স্ক্রিপ্ট:একটি csv ফাইল থেকে একটি পান্ডাস ডেটাফ্রেম তৈরি করুন।"""pdmovies_dataset pd read_csv হিসাবে পান্ডা আমদানি করুন "https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv")#1 অবজেক্টটাইপ (চলচ্চিত্র_ডেটাসেট) # 2 প্রিন্ট করুন 



বাজেট
আইডি
মূল_ভাষা
মূল_শিরোনাম
জনপ্রিয়তা
মুক্তির_তারিখ
রাজস্ব
রানটাইম
স্থিতি
শিরোনাম
ভোটের_গড়
ভোট_গণনা
0
237000000
19995
en
অবতার
150.437577
10/12/2009
2787965087
162.0
মুক্ত করা হয়েছে
অবতার
7.2
11800
1
300000000
285
en
ক্যারিবিয়ান জলদস্যু:বিশ্বের শেষে
139.082615
19/05/2007
961000000
169.0
মুক্ত করা হয়েছে
ক্যারিবিয়ান জলদস্যু:বিশ্বের শেষে
6.9
4500
2
245000000
206647
en
স্পেক্টার
107.376788
26/10/2015
880674609
148.0
মুক্ত করা হয়েছে
স্পেক্টার
6.3
4466
3
250000000
49026
en
দ্য ডার্ক নাইট রাইজেস
112.312950
16/07/2012
1084939099
165.0
মুক্ত করা হয়েছে
দ্য ডার্ক নাইট রাইজেস
7.6
9106
4
260000000
49529
en
জন কার্টার
43.926995
7/03/2012
284139100
132.0
মুক্ত করা হয়েছে
জন কার্টার
6.1
2124

2. একটি একক ডেটাফ্রেম কলাম নির্বাচন করা৷ সূচী অপারেটরের কাছে স্ট্রিং বা তালিকা হিসাবে কলামের নাম পাস করা হলে কলামের মানগুলি সিরিজ বা ডেটাফ্রেম হিসাবে ফিরে আসবে৷

যদি আমরা কলামের নামের সাথে একটি স্ট্রিং পাস করি, আপনি আউটপুট হিসাবে একটি সিরিজ পাবেন, তবে, শুধুমাত্র একটি কলামের নামের সাথে তালিকাটি পাস করলে ডেটাফ্রেম ফিরে আসবে। আমরা উদাহরণ সহ এটি দেখতে পাব।

# সিরিজ মুভি_ডেটাসেট হিসেবে ডেটা নির্বাচন করুন["title"]


0 Avatar1 Pirates of the Caribbean:At World's End2 Spectre3 The Dark Knight Rises4 John Carter...4798 El Mariachi4799 Newlyweds4800 Signed, Sealed, Delivered4801 Shanghai Calling4802 My Date with DrewName:title, Length:4 object:

পূর্বে>


# ডেটাফ্রেম মুভি_ডেটাসেট হিসেবে ডেটা নির্বাচন করুন[["title"]]



শিরোনাম
0
অবতার
1
ক্যারিবিয়ান জলদস্যু:বিশ্বের শেষে
2
স্পেক্টার
3
দ্য ডার্ক নাইট রাইজেস
4
জন কার্টার
...
...
4798
এল মারিয়াচি
4799
নব দম্পতি
4800
স্বাক্ষরিত, সিল করা, বিতরণ করা হয়েছে
4801
সাংহাই কলিং
4802
ড্রুর সাথে আমার ডেট

3. একাধিক ডেটাফ্রেম কলাম নির্বাচন করা৷

# একাধিক ডেটাফ্রেম কলাম চলচ্চিত্র_ডেটাসেট[["title""রানটাইম","vote_average","vote_count"]]



শিরোনাম
রানটাইম
ভোটের_গড়
ভোট_গণনা
0
অবতার
162.0
7.2
11800
1
ক্যারিবিয়ান জলদস্যু:বিশ্বের শেষে
169.0
6.9
4500
2
স্পেক্টার
148.0
6.3
4466
3
দ্য ডার্ক নাইট রাইজেস
165.0
7.6
9106
4
জন কার্টার
132.0
6.1
2124
...
...
...
...
...
4798
এল মারিয়াচি
81.0
6.6
238
4799
নব দম্পতি
85.0
5.9
5
4800
স্বাক্ষরিত, সিল করা, বিতরণ করা হয়েছে
120.0
7.0
6
4801
সাংহাই কলিং
98.0
5.7
7
4802
ড্রুর সাথে আমার ডেট
90.0
6.3
16

কোড পঠনযোগ্যতার সমস্যাগুলি এড়াতে, আমি সর্বদা একটি তালিকা হিসাবে কলামগুলির নাম ধরে রাখার জন্য একটি পরিবর্তনশীল সংজ্ঞায়িত করার পরামর্শ দিই এবং কোডের মধ্যে একাধিক কলামের নাম উল্লেখ না করে কলামের নাম ব্যবহার করুন৷

কলাম=["শিরোনাম","রানটাইম","ভোট_গড়","ভোট_গণনা"]চলচ্চিত্র_ডেটাসেট[কলাম]



শিরোনাম
রানটাইম
ভোটের_গড়
ভোট_গণনা
0
অবতার
162.0
7.2
11800
1
ক্যারিবিয়ান জলদস্যু:বিশ্বের শেষে
169.0
6.9
4500
2
স্পেক্টার
148.0
6.3
4466
3
দ্য ডার্ক নাইট রাইজেস
165.0
7.6
9106
4
জন কার্টার
132.0
6.1
2124
...
...
...
...
...
4798
এল মারিয়াচি
81.0
6.6
238
4799
নব দম্পতি
85.0
5.9
5
4800
স্বাক্ষরিত, সিল করা, বিতরণ করা হয়েছে
120.0
7.0
6
4801
সাংহাই কলিং
98.0
5.7
7
4802
ড্রুর সাথে আমার ডেট
90.0
6.3
16

4. কলামের নাম অনুসারে ডেটাফ্রেম কলাম।

.filter() পদ্ধতি

একটি স্ট্রিং ব্যবহার করে কলামগুলি অনুসন্ধান এবং নির্বাচন করার জন্য এই পদ্ধতিটি বেশ সহজ৷ এটি এসকিউএল-এর %% প্যারামিটারের মতো একইভাবে কাজ করে। মনে রাখবেন, .filter() পদ্ধতি শুধুমাত্র কলামের নাম পরিদর্শন করে কলাম নির্বাচন করে এবং প্রকৃত ডেটা মান নয়।

.filter() পদ্ধতি তিনটি প্যারামিটার সমর্থন করে যা নির্বাচন পরিচালনার জন্য ব্যবহার করা যেতে পারে।

.লাইক
.regex
.items

যেমন প্যারামিটার একটি স্ট্রিং নেয় এবং কলামের নামের কোথাও এই স্ট্রিংটি ধারণ করে এমন কলামের নামগুলি খুঁজে বের করার চেষ্টা করে৷


# "title" movies_dataset.filter(like="title").head(5)



মূল_শিরোনাম
শিরোনাম
0
অবতার
অবতার
1
ক্যারিবিয়ান জলদস্যু:বিশ্বের শেষে
ক্যারিবিয়ান জলদস্যু:বিশ্বের শেষে
2
স্পেক্টার
স্পেক্টার
3
দ্য ডার্ক নাইট রাইজেস
দ্য ডার্ক নাইট রাইজেস
4
জন কার্টার
জন কার্টার

.regex – নিয়মিত এক্সপ্রেশন ব্যবহার করে কলামের নাম নির্বাচন করার আরও নমনীয় উপায়

# "t"movies_dataset.filter(regex=t).head() দিয়ে শেষ হওয়া কলামগুলি নির্বাচন করুন



বাজেট
ভোট_গণনা
0
237000000
11800
1
300000000
4500
2
245000000
4466
3
250000000
9106
4
260000000
2124

.items – স্ট্রিং বা তালিকা অপারেটরের কাছে কলামের নাম পাস করার ডুপ্লিকেট, KeyError ব্যতীত উত্থাপিত হবে না

ডেটা প্রকার অনুসারে ডেটাফ্রেম কলাম।

.select_dtypes পদ্ধতিটি কলাম ডেটা টাইপগুলিতে কাজ করে যদি আপনি ফিল্টার করতে এবং শুধুমাত্র নির্দিষ্ট ডেটা প্রকার ব্যবহার করতে আগ্রহী হন৷

আবার, .select_dtypes পদ্ধতি একাধিক ডেটা প্রকার (একটি তালিকা দ্বারা) বা একক ডেটা টাইপ (একটি স্ট্রিং হিসাবে) এর অন্তর্ভুক্ত বা বাদ পরামিতি গ্রহণ করে এবং শুধুমাত্র সেই প্রদত্ত ডেটা প্রকারের কলামগুলির সাথে একটি ডেটাফ্রেম প্রদান করে৷

.include প্যারামিটারে নির্দিষ্ট ডেটা টাইপ/s সহ কলাম অন্তর্ভুক্ত থাকে এবং .exclude নির্দিষ্ট ডেটা টাইপ সহ কলামগুলিকে উপেক্ষা করবে৷

আসুন প্রথমে ডেটা প্রকারগুলি এবং সেই ডেটা প্রকারগুলির সাথে কলামগুলির গণনা দেখি

movies_dataset=pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv"movies_dataset.dtypes.value_counts()


অবজেক্ট 5int64 4float64 3dtype:int64


ক) পান্ডা ডেটাফ্রেম থেকে পূর্ণসংখ্যার ডেটা প্রকারগুলি ফিল্টার করা৷

 movies_dataset select_dtypes(include="int")head(3)


হেড>>2
1
0


খ)। পান্ডা ডেটাফ্রেম থেকে পূর্ণসংখ্যা এবং ভাসমান ডেটা প্রকার নির্বাচন করুন৷

আপনি নীচের একটি তালিকা হিসাবে একাধিক ডেটা প্রকার নির্দিষ্ট করতে পারেন৷

movies_dataset select_dtypes(include="int64","float"]).head(3)



বাজেট
আইডি
জনপ্রিয়তা
রাজস্ব
রানটাইম
ভোটের_গড়
ভোট_গণনা
0
237000000
19995
150.437577
2787965087
162.0
7.2
11800
1
300000000
285
139.082615
961000000
169.0
6.9
4500
2
245000000
206647
107.376788
880674609
148.0
6.3
4466

গ) ঠিক আছে, আপনি যদি সব সাংখ্যিক ডেটা টাইপ চান, শুধু নম্বর নির্দিষ্ট করুন

 movies_dataset select_dtypes(include="number"]).head(3)



বাজেট
আইডি
জনপ্রিয়তা
রাজস্ব
রানটাইম
ভোটের_গড়
ভোট_গণনা
0
237000000
19995
150.437577
2787965087
162.0
7.2
11800
1
300000000
285
139.082615
961000000
169.0
6.9
4500
2
245000000
206647
107.376788
880674609
148.0
6.3
4466

d) পান্ডা ডেটাফ্রেম থেকে নির্দিষ্ট ডেটা প্রকারগুলি বাদ দিন৷


 movies_dataset select_dtypes(exclude="object"]).head(3)



বাজেট
আইডি
জনপ্রিয়তা
রাজস্ব
রানটাইম
ভোটের_গড়
ভোট_গণনা
0
237000000
19995
150.437577
2787965087
162.0
7.2
11800
1
300000000
285
139.082615
961000000
169.0
6.9
4500
2
245000000
206647
107.376788
880674609
148.0
6.3
4466


দ্রষ্টব্য :- মোকাবেলা করার জন্য স্ট্রিং ডেটা টাইপ নেই, পান্ডা সেগুলিকে অবজেক্টে রূপান্তর করে, তাই আপনি যদি "TypeError:ডেটা টাইপ "স্ট্রিং" বোঝা যায় না" ব্যতিক্রমের সম্মুখীন হন, তাহলে পরিবর্তে স্ট্রিংকে অবজেক্ট দিয়ে প্রতিস্থাপন করুন।


  1. পাইথন - একটি পান্ডাস ডেটাফ্রেম থেকে একাধিক কলাম নির্বাচন করুন

  2. মাইক্রোসফ্ট অ্যাক্সেসে কলামগুলিকে কীভাবে ফ্রিজ এবং আনফ্রিজ করবেন

  3. কিভাবে একটি ডিরেক্টরি নির্বাচন করবেন এবং পাইথনে Tkinter ব্যবহার করে অবস্থান সংরক্ষণ করবেন?

  4. পাইথনে ডেটাফ্রেমের একটি কলাম কীভাবে মুছে ফেলা যায়?