これは簡単ですが、わかりません。私はパンダのデータフレームを条件を満たすすべての行にフィルタリングする方法を知っていますが、その逆が欲しいときは奇妙なエラーが続きます。条件を満たさないすべての行のパンダデータフレームをフィルタリングします
これは例です。 (コンテキスト:ピースがグリッド上にあり、我々はそれを与えるためにしようとしているシンプルなボードゲーム座標と隣接するすべてのピースを返すではなく、実際に実際の作品は、座標)私はnot
を考え
import pandas as pd
import numpy as np
df = pd.DataFrame([[5,7, 'wolf'],
[5,6,'cow'],
[8, 2, 'rabbit'],
[5, 3, 'rabbit'],
[3, 2, 'cow'],
[7, 5, 'rabbit']],
columns = ['lat', 'long', 'type'])
coords = [5,7] #the coordinate I'm testing, a wolf
view = df[((coords[0] - 1) <= df['lat']) & (df['lat'] <= (coords[0] + 1)) \
& ((coords[1] - 1) <= df['long']) & (df['long'] <= (coords[1] + 1))]
view = view[not ((coords[0] == view['lat']) & (coords[1] == view['long'])) ]
print(view)
それに続くカッコ内のブール値を否定するだけですが、これはどのように動作するかはわかりません。
私は5,6で牛を返すが、5,7で狼ではない(これは現在の作品なので)。私のロジックを二重にチェックするだけでしたが、私はしました
これはちょうど私が期待したようにオオカミを返しました。だから、私はちょうどその前にnot
を入れて、それ以外のものを手に入れることができないのですか?あるいは、もっと重要なのは、他のものを手に入れるために何をするかです。
はい!ありがとうございました。私はまた起こっているかもしれない何かを考えたので、 '!'を使って試してみましたが、私はまだ少しです。再度、感謝します。 – seth127