ডেটা ফ্রেম ইনডেক্সিং অপারেটরের প্রাথমিক উদ্দেশ্য, []
কলামগুলি নির্বাচন করা।
যখন ইনডেক্সিং অপারেটর একটি স্ট্রিং বা পূর্ণসংখ্যা পাস করে, তখন এটি সেই নির্দিষ্ট নাম সহ একটি কলাম খুঁজে বের করে সিরিজ হিসাবে ফেরত দেওয়ার চেষ্টা করে।
সুতরাং, উপরের প্রশ্নে: df[2]
পূর্ণসংখ্য মানের সাথে মেলে একটি কলামের নাম সন্ধান করে 2
। এই কলামটি বিদ্যমান নেই এবং একটি KeyError
উত্থাপিত হয়েছে।
যখন স্লাইস নোটেশন ব্যবহৃত হয় তখন ডেটা ফ্রেম ইনডেক্সিং অপারেটর সারিগুলি নির্বাচন করতে আচরণের পুরোপুরি পরিবর্তন করে
আশ্চর্যের বিষয় হল, যখন একটি স্লাইস দেওয়া হয়, ডেটাফ্রেম ইনডেক্সিং অপারেটর সারিগুলি নির্বাচন করে এবং এটি পূর্ণসংখ্যার অবস্থান বা সূচক লেবেল দ্বারা করতে পারে।
df[2:3]
এটি শেষ উপাদানটি ব্যতীত 2 থেকে 3 অবধি পূর্ণসংখ্যার সারি দিয়ে শুরু করবে ice সুতরাং, শুধুমাত্র একটি সারি। নিম্নলিখিতটি সংখ্যক 6 থেকে শুরু করে সারি নির্বাচন করে প্রতি তৃতীয় সারিতে 20 টি যোগ করে না।
df[6:20:3]
আপনার ডেটাফ্রেম সূচীতে যদি স্ট্রিং থাকে তবে আপনি স্ট্রিং লেবেলযুক্ত স্লাইসগুলিও ব্যবহার করতে পারেন। আরও বিশদের জন্য এই সমাধানটি .iloc বনাম .loc এ দেখুন ।
আমি এই স্লাইস সংকেতটিকে কখনই ইনডেক্সিং অপারেটরের সাথে ব্যবহার করি না কারণ এটি সুস্পষ্ট এবং খুব কমই ব্যবহৃত হয় না। সারি দ্বারা টুকরা করার সময়, সাথে লাঠি .loc/.iloc
।
df.ix[2]
কাজ করে না - কমপক্ষে নাpandas version '0.19.2'