私は、多数の予測変数を持つデータセットを使用しており、制御ファイルを使用してさまざまな複合変数グループを簡単にテストしたいと考えています。まず、制御ファイルは変数を含めるかどうかを示します。ここでは例です:他のルックアップに基づいてデータフレーム内の列を選択する方法は?
control = pd.DataFrame({'Variable': ['Var1','Var2','Var3'],
'Include': [1,0,1]})
control
Out[48]:
Include Variable
0 1 Var1
1 0 Var2
2 1 Var3
data = pd.DataFrame({'Sample':['a','b','c'],
'Var1': [1,0,0],
'Var2': [0,1,0],
'Var3': [0,0,1]})
data
Out[50]:
Sample Var1 Var2 Var3
0 a 1 0 0
1 b 0 1 0
2 c 0 0 1
ので、処理後の結果は、データのように見えますが、VAR2列をドロップし、新しいデータフレームのようになります。
data2
Out[51]:
Sample Var1 Var3
0 a 1 0
1 b 0 0
2 c 0 1
私はこれを選択使用して列をドロップすることで、仕事を得ることができます.itterows():
これは機能しますが、データフレーム全体でこれを一度に行う方法があるようです。次のようなものがあります。
data2 = data[control['Include'] == 1]
ただし、これは列ではなく「インクルード」値に基づいて行をフィルタリングします。
感謝の意を表します。
を使用してかなり速い解決する必要があります@DYZありがとう - リストにヘッダを変換する最初のトリックを行います。 この場合、ブール値をテストする正しい方法は何ですか?まだ== 1? – user1355179
これは次のようなものです: 'headers = control ['Include']] ['Variable']' – DyZ