2017-12-07 17 views
2

マスク列を作成すると、1は他の列のデータがあることを示し、0は同じ列に空白がある場合を示します。私は次のコードを使用してそれを行うために管理Pandas:変数df [変数] .isnullを変数として使用して新しい列を作成

A B C D E mask1 
0 13 2 45 96 1 
1 14 2 45 96 1 
2 15 9 1. NaN 1 
3 16 9 1.0 NaN 1 
4 17 5 0.0 NaN 1 
5 18 6 1.0 967 1 
6 19 6 1.0 976 1 
7 20 9 1.0 294 1 
8 21 5 0.0 372 1 
9 13 5 NaN 170 0 
10 62 5 NaN 100 0 
11 22 20 NaN 170 0 
12 13 NaN 0.0 996 0 

を設定します。

df2["mask1"] = np.where((df2['C'].isnull() | df2['D'].isnull()) , 0, 1) 

は今、私はより多くの変数、すなわちを持つ大規模データフレームのためにこれを自動化したい、私は私がしたい変数を指定したいですこのマスクに使用します。私は、このような

私はこの操作を実行するために使用することができ
var = [C, D, E] 

などの変数のリストを作成するために考えて、私はこのリストを使用して思い付いた同じコードを適用する方法を確認していないました。 forループ?

答えて

3

列を選択し、ISNULLまたは

cols = ['C', 'D', 'E'] 
df['mask1'] = df[cols].notnull().all(1).astype(int) 

    A B C  D  E mask1 
0 0 13 2.0  45.0 96.0 1 
1 1 14 2.0  45.0 96.0 1 
2 2 15 9.0  1.0  NaN  0 
3 3 16 9.0  1.0  NaN  0 
4 4 17 5.0  0.0  NaN  0 
5 5 18 6.0  1.0  967.0 1 
6 6 19 6.0  1.0  976.0 1 
7 7 20 9.0  1.0  294.0 1 
8 8 21 5.0  0.0  372.0 1 
9 9 13 5.0  NaN  170.0 0 
10 10 62 5.0  NaN  100.0 0 
11 11 22 20.0 NaN  170.0 0 
12 12 13 NaN  0.0  996.0 0 
+0

NOTNULLおかげVaishaliのを適用します。私はすべての列を望んでいない、私はちょうど私がリストで指定されたものが欲しい。 –

+0

@JuliannoSambatti、pl編集 – Vaishali

+0

を参照してください完璧に働いた。どうもありがとう! –

関連する問題