2015-10-21 5 views
5

मैं पांडा है कि मुझे पागल ड्राइविंग का उपयोग कर एक np.where समस्या है में काम नहीं कर रहा np.where और मैं गूगल, प्रलेखन, आदिमेरी पांडा

मैं आशा करती हूं किसी के माध्यम से हल करने के लिए नहीं कर पा रहे अंतर्दृष्टि है मुझे यकीन है कि यह जटिल नहीं है।

मेरे पास एक डीएफ है जहां मैं एक कॉलम में मान की जांच कर रहा हूं - और यदि वह मान 'n/a' है (एक स्ट्रिंग के रूप में, .isnull() में नहीं), इसे किसी अन्य मान में बदल रहा है।

Full_Names_Test_2['MarketCap'] == 'n/a'

रिटर्न:

70  True 
88  False 
90  True 
145  True 
156  True 
181  True 
191  True 
200  True 
219  True 
223 False 
Name: MarketCap, dtype: bool 

ताकि हिस्सा काम करता है।

लेकिन इस:

Full_Names_Test_2['NewColumn'] = np.where(Full_Names_Test_2['MarketCap'] == 'n/a', 7) 

रिटर्न:

ValueError: either both or neither of x and y should be given 

क्या चल रहा है?

उत्तर

6

उत्तीर्ण होने के लिए बूलियन मुखौटा और (दो) स्तंभों को महत्व देता है की जरूरत है:

np.where(Full_Names_Test_2['MarketCap'] == 'n/a', 7) 
# should be 
np.where(Full_Names_Test_2['MarketCap'] == 'n/a', Full_Names_Test_2['MarketCap'], 7) 

np.where डॉक्स देखें।

या वैकल्पिक रूप से the where Series method का उपयोग करें:

Full_Names_Test_2['MarketCap'].where(Full_Names_Test_2['MarketCap'] == 'n/a', 7) 
+0

मैं ऐसे एक बेवकूफ हूँ। मुझे लगता है कि मैं np.where विधि के मूल वाक्यविन्यास को समझ नहीं पाया। अब मैं स्पष्ट रूप से देखता हूं। एक बार फिर धन्यवाद! – Windstorm1981

+0

@ Windstorm1981 fwiw, मुझे लगता है कि इस विधि पर दस्तावेज़ और यह त्रुटि संदेश बहुत स्पष्ट हो सकता है। यह स्पष्ट नहीं है (पर्याप्त, आईएमओ) कि दूसरा तर्क आवश्यक है। – szeitlin