আপনার আসল ডেটাফ্রেমটি আপডেট না হওয়ার কারণ হ'ল শৃঙ্খলযুক্ত ইনডেক্সিং আপনার ডেটাফ্রেমের ভিউয়ের পরিবর্তে একটি অনুলিপি পরিবর্তন করতে পারে। ডক্স এই উপদেশ দিতে:
পান্ডাস অবজেক্টে মান নির্ধারণের সময়, চেইনড ইনডেক্সিং যাকে বলা হয় তা এড়াতে যত্ন নেওয়া উচিত।
আপনার কয়েকটি বিকল্প রয়েছে: -
loc
+ বুলিয়ান ইনডেক্সিং
loc
মানগুলি সেট করার জন্য এবং বুলিয়ান মাস্কগুলিকে সমর্থন করার জন্য ব্যবহার করা যেতে পারে:
df.loc[df['my_channel'] > 20000, 'my_channel'] = 0
mask
+ বুলিয়ান ইনডেক্সিং
আপনি আপনার সিরিজ বরাদ্দ করতে পারেন:
df['my_channel'] = df['my_channel'].mask(df['my_channel'] > 20000, 0)
অথবা আপনি নিজের সিরিজটি আপডেট করতে পারেন:
df['my_channel'].mask(df['my_channel'] > 20000, 0, inplace=True)
np.where
+ বুলিয়ান ইনডেক্সিং
আপনি করতে পারেন আপনার মূল সিরিজ যখন আপনার অবস্থা বরাদ্দ করে NumPy ব্যবহার না সন্তুষ্ট; তবে, প্রথম দুটি সমাধান পরিষ্কার হয় যেহেতু তারা স্পষ্টভাবে কেবলমাত্র নির্দিষ্ট মানগুলি পরিবর্তন করে।
df['my_channel'] = np.where(df['my_channel'] > 20000, 0, df['my_channel'])