2015-10-21 20 views
5

を動作しません洞察力を持っています。私はそれが複雑ではないと確信しています。np.whereは私が誰かを望んでいるなど、私は狂気私を運転していると私はグーグル、ドキュメントを通じて解決するように見えることはできませんパンダを使用してnp.where問題を抱えている私のパンダに</p> <p>を

私は1つの列の値をチェックしています。その値が '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 

何が起こっていますか?あなたはブール値マスクと(2)を渡す必要が

答えて

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、私はこの方法とこのエラーメッセージのドキュメントははるかに明確になると思う。 2番目の議論が必要であることは明らかではない(十分なIMO)。 – szeitlin

関連する問題