ডেটাফ্রেম থেকে নির্বাচন মূল ডাটাফ্রেমের একটি অনুলিপি বা মূলের উপর দৃষ্টিভঙ্গি করার সময় পান্ডারা যে নিয়মগুলি ব্যবহার করে সে সম্পর্কে আমি বিভ্রান্ত।
যদি আমার কাছে থাকে, উদাহরণস্বরূপ,
df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9))
আমি বুঝতে পারি যে কোনও query
প্রতিলিপি ফেরত দেয় যাতে কিছু পছন্দ হয়
foo = df.query('2 < index <= 5')
foo.loc[:,'E'] = 40
মূল ডেটাফ্রেমে কোনও প্রভাব ফেলবে না df
,। আমি আরও বুঝতে পারি যে স্কেলার বা নামযুক্ত টুকরোগুলি একটি দর্শন ফিরিয়ে দেয়, যাতে এইগুলিতে এই নিয়োগগুলি
df.iloc[3] = 70
অথবা
df.ix[1,'B':'E'] = 222
পরিবর্তন হবে df
। তবে জটিল সমস্যাগুলির ক্ষেত্রে আমি হারিয়েছি। উদাহরণ স্বরূপ,
df[df.C <= df.B] = 7654321
পরিবর্তন df
, কিন্তু
df[df.C <= df.B].ix[:,'B':'E']
না.
পান্ডগণ যে স্রেফ নিখোঁজ রয়েছেন সেটির কোনও সাধারণ নিয়ম আছে? এই নির্দিষ্ট ক্ষেত্রে কী চলছে; এবং বিশেষত, আমি কীভাবে একটি ডেটাফ্রেমে সমস্ত মান (বা মানগুলির একটি উপসেট) পরিবর্তন করব যা একটি নির্দিষ্ট ক্যোয়ারীকে সন্তুষ্ট করে (যেমন আমি উপরের শেষ উদাহরণে চেষ্টা করার চেষ্টা করছি)?
দ্রষ্টব্য: এটি এই প্রশ্নের মতো নয় ; এবং আমি ডকুমেন্টেশন পড়েছি , কিন্তু এটি দ্বারা আলোকিত হয় না। আমি এই বিষয়ে "সম্পর্কিত" প্রশ্নগুলিও পড়েছি, তবে পাণ্ডরা যে সাধারণ নিয়মটি ব্যবহার করছেন সেটি আমি এখনও অনুপস্থিত এবং কীভাবে আমি এটি প্রয়োগ করব - উদাহরণস্বরূপ - মানগুলি সংশোধন করুন (বা মানগুলির একটি উপসেট) একটি ডেটাফ্রেমে যা কোনও নির্দিষ্ট ক্যোয়ারিকে সন্তুষ্ট করে।
.query
এটি কীভাবে করায় (এবং একটি ভিউ নয়) এর জন্য একটি অনুলিপি সর্বদা ফিরিয়ে দেবে, কারণ এটি n numexpr দ্বারা মূল্যায়ন করা হয়েছে। সুতরাং আমি এটিকে 'বিধিগুলিতে' যোগ করব