1
私の目的は、ブールマスクを使用してDataFrameから有用なカラムを取得することです。Pandas DataFrameカラムのブールマスク
私はコードのように抜粋してみてください:
df = pd.DataFrame({'a': [1,2,3,4,5], 'b': [101, 101, 102, 101, 102], 'c': [23, 12, 54, 65, 21]})
mask = [True, False, True]
df.columns[mask]
をし、結果は私が実際に必要なものです:
Index([u'a', u'c'], dtype='object')
その後、私は同じコードを試してみたが、別のマスクで:
mask_i = [1, 0, 1]
df = pd.DataFrame({'a': [1,2,3,4,5], 'b': [101, 101, 102, 101, 102], 'c': [23, 12, 54, 65, 21]})
mask_i = [1, 0, 1]
df.columns[mask]
私は同じ結果を期待しましたが、すべてのインデックスを取得しました:
Index([u'b', u'a', u'b'], dtype='object')
それから私は、チェック:マスクが同じであるが、私は異なる結果を得る理由
mask_i = [1, 0, 1]
mask = [True, False, True]
print mask == mask_i`
# Result: `True`
誰かがしてください説明することができます。
チェックこの質問と答えaccepeted:http://stackoverflow.com/questions/2764017/is-false-0-and-ブールにあなたの整数のインデックスを変換するには
、あなたはどちらかを使用することができますtrue-1-in-python-implementation-detail-or-it-guarantee – grubjesic
__boolean__ indexing!=整数インデックス作成。 'df.columns [[1、0、1]]'は以下の__indexes__を持つ列のリストを返します: '[1,0,1]' – MaxU