2016-09-30 20 views
2

6つのカラムを持つデータフレームがあるとします。これらの列のうちの3つの部分集合については、3のインスタンスを1に変更したいと考えています。エレガントな方法を提案できますか? だけのような行を書く:寸法は(50 200のうち変数の変更など)はるかに大きいようPython:カラム名と条件に基づいてデータフレーム値を置換する

df['A'][df.A == 3] = 1 

することは、私の実際のデータでは非効率的です。

おそらく、我々は、この例に仕事ができる:

我々は、列A、B、Cのおかげで1〜3の値を変更したい
df = pd.DataFrame(np.random.randint(0,10,size=(100, 6)), columns=list('ABCDEF')) 

答えて

0

列のサブセットをループし、割り当てにlocを使用できます。

subset cols = ['A', 'B', 'C'] # For example. 
for col in subset_cols: 
    df.loc[df[col] == 3, col] = 1 
+0

完璧、ありがとう(私は15ポイントをまだ持っていません) – JPico6

関連する問題