पांडा 0.20 ix से शुरू होता है । सही तरीका df.loc का उपयोग करना है
यहाँ एक कार्य उदाहरण है
>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame({"A":[0,1,0], "B":[2,0,5]}, columns=list('AB'))
>>> df.loc[df.A == 0, 'B'] = np.nan
>>> df
A B
0 0 NaN
1 1 0
2 0 NaN
>>>
स्पष्टीकरण:
जैसा कि यहां डॉक्टर में बताया गया है , .loc मुख्य रूप से लेबल आधारित है, लेकिन इसका उपयोग बूलियन सरणी के साथ भी किया जा सकता है ।
तो, हम ऊपर क्या कर रहे हैं df.loc[row_index, column_index]द्वारा लागू है:
- इस तथ्य को उजागर करते हुए कि
locहम एक मुखौटा के रूप में बूलियन सरणी ले सकते हैं जो पांडा को बताता है कि पंक्तियों का सबसेट जो हम बदलना चाहते हैंrow_index
- तथ्य यह है शोषण
locभी स्तंभ लेबल का उपयोग कर चयन करने के लिए आधार पर लेबल है 'B'मेंcolumn_index
हम तार्किक, स्थिति या किसी भी ऑपरेशन का उपयोग कर सकते हैं जो बूलियन की श्रृंखला का निर्माण करता है। उपरोक्त उदाहरण में, हम चाहते हैं कि कोई भी rowsहो 0, इसके लिए हम उपयोग कर सकते हैं df.A == 0, जैसा कि आप नीचे दिए गए उदाहरण में देख सकते हैं, यह बूलियंस की एक श्रृंखला देता है।
>>> df = pd.DataFrame({"A":[0,1,0], "B":[2,0,5]}, columns=list('AB'))
>>> df
A B
0 0 2
1 1 0
2 0 5
>>> df.A == 0
0 True
1 False
2 True
Name: A, dtype: bool
>>>
फिर, हम आवश्यक पंक्तियों को चुनने और संशोधित करने के लिए बूलियंस के उपरोक्त सरणी का उपयोग करते हैं:
>>> df.loc[df.A == 0, 'B'] = np.nan
>>> df
A B
0 0 NaN
1 1 0
2 0 NaN
अधिक जानकारी के लिए यहाँ उन्नत अनुक्रमण प्रलेखन की जाँच करें ।
whereरूप में नीचे इस समाधान