आपके मूल डेटाफ़्रेम को अद्यतन नहीं करने का कारण यह है कि जंजीर अनुक्रमण आपके डेटाफ़्रेम के दृश्य के बजाय कॉपी को संशोधित करने का कारण हो सकता है। डॉक्स इस सलाह दे:
पंडों की वस्तु में मान स्थापित करते समय, जंजीर अनुक्रमण को क्या कहते हैं, से बचने के लिए सावधानी बरतनी चाहिए।
आपके पास कुछ विकल्प हैं: -
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'])