>>> A = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['x','y','z'])
>>> A
x y z
a 1 2 3
b 4 5 6
c 7 8 9
(1)全体に対する条件抽出
“=”、“<”、“<=”、“>”、“>=”等の条件に合致したデータフレーム内の要素を抽出します。
>>> A[A>=3]
x y z
a NaN NaN 3
b 4.0 5.0 6
c 7.0 8.0 9
>>> A[A==3]
x y z
a NaN NaN 3.0
b NaN NaN NaN
c NaN NaN NaN
“AND”条件は次のように指定します。
>>> A[(3<A) & (A<6)]
x y z
a NaN NaN NaN
b 4.0 5.0 NaN
c NaN NaN NaN
“OR”条件は次のように指定します。
>>> A[(A<3) | (6<A)]
x y z
a 1.0 2.0 NaN
b NaN NaN NaN
c 7.0 8.0 9.0
その他詳細は
Pandas Manual参照下さい。
(4)isinによる抽出
“isin”で指定した値をデータフレーム内で検索し、一致するとTrue、不一致だとFalseを返します。
\[
\begin{array}{ccccc}
& x & y & z
\\
a & 1 & 2 & 3
\\
b & 4 & 5 & 6
\\
c & 7 & 8 & 9
\end{array}
\]
#行列全体で検索
>>> A.isin([1,5,9])
x y z
a True False False
b False True False
c False False True
#x列内のみ検索
>>> A.isin({'x':[1,5,9]})
x y z
a True False False
b False False False
c False False False
>>> A.isin({'x':[1],'y':[5],'z':[9]})
x y z
a True False False
b False True False
c False False True
このコマンドを使ってデータフレームから要素を抽出できます。
>>> A[A.isin({'x':[1],'y':[5],'z':[9]})]
x y z
a 1.0 NaN NaN
b NaN 5.0 NaN
c NaN NaN 9.0