2017-04-30 24 views
1

Rと単純なifelseステートメントを学習した後、Pythonを学習しようとしています。 RでRのifelseステートメントのPythonバージョン

は私が持っている:

df$X <- if(df$A == "-1"){-df$X}else{df$X} 

しかし、私はPythonでそれを実装する方法がわからないです、私が試してみました:

df['X'][df['A'] <1] = -[df['X'] 
df['X'][df['A'] >1] = [df['X'] 

しかし、これはいくつかの助けをいただければ幸いです、エラーにつながります。

+1

ヒント*、python *は一般的にベクトル化されていないので、Rコードで何らかのベクトル化を使用している場合、Pythonを使用して同様の機能のために 'numpy' /' pandas'を見たいとします。 –

+0

ありがとう、juanpa.arrivillage – DenJJ

答えて

7

等価物はnp.whereある:

import numpy as np 
np.where(df['A'] < 1, -df['X'], df['X']) 

このチェックは、もしそうであれば、カラムAの値が1より低い場合、それはそうでなければ、対応する値を返し、df['X']から-1を乗じた対応する値を返しますdf['X']にあります。

これは、連鎖インデックス付けのためにエラー/警告が発生している可能性があることを示しています。 df['X'][df['A'] <1]の代わりにdf.loc[df['A'] <1, 'X']を使用してください。それで、質問に示されているように、2つのステップで同じことをすることができます。

関連する問題