は、唯一である必要が同じ寸法で感謝しますND df
:
print (mask.shape)
(4, 4)
print (df.shape)
(4, 4)
print (df[mask.any(axis=1)])
TTL1 TTL2 TTL3 TTL4
1 val1 val2 val3 val4
2 val1 val2 val3 val4
と同じ:
print (df[mask.any(1)])
TTL1 TTL2 TTL3 TTL4
1 val1 val2 val3 val4
2 val1 val2 val3 val4
commentから別の可能性のある問題 - string
値の代わりにint
:
mask = np.array([[0, 0, 0, 0 ],
[ 0, 0, 1, 0 ],
[ 0, 1, 0, 0 ],
[ 0, 0, 0, 0 ]]).astype(str)
mask = mask.astype(bool)
print (df[mask.any(1)])
TTL1 TTL2 TTL3 TTL4
1 val1 val2 val3 val4
2 val1 val2 val3 val4
EDIT:
VA内の文字列nan
た場合
mask = np.array(
[['0', 'nan', '0', '0'],
['0', '0', '1', '0'],
['0', '1', '0', '0'],
['0', '0', '0', 'nan']])
mask[mask == 'nan'] = 0
mask = mask.astype(bool)
print (mask)
[[False False False False]
[False False True False]
[False True False False]
[False False False False]]
またはsimplierを:あなたはそれらを交換することができ梅毒
mask = np.array(
[['0', 'nan', '0', '0'],
['0', '0', '1', '0'],
['0', '1', '0', '0'],
['0', '0', '0', 'nan']])
mask = mask == '1'
print (mask)
[[False False False False]
[False False True False]
[False True False False]
[False False False False]]
私はあなたのコードのsholudの仕事だと思います。エラーとは何ですか? – jezrael
その行がうまくいくはずです。あなたはそれについて動かなかったことを分かち合うことができますか? – piRSquared
これらが実際には整数であり、 'int'の文字列表現ではないことを確認してください。そうでない場合は、 'int/bool'型として型キャストしてからサブセットを実行してください。 –