これはおそらく非常に基本的ですが、in
はオブジェクトや文字列を含むためには機能しません。シリーズに文字列が含まれているときに値を検索していないのはなぜですか?
>>> import pandas as pd
>>> s = pd.Series(['a', 'b', 'c'])
>>> 'a' in s
False
>>> 'a' in s.astype('S1')
False
Series.__contains__
ドキュメントはかなり希薄である:
>>> 1 in s
True
しかし、その後:それをしないのはなぜ(ように見える
[In 1]: s.__contains__?
Signature: s.__contains__(key)
Docstring: True if the key is in the info axis
File: c:\...\lib\site-packages\pandas\core\generic.py
Type: method
私の最初の考えはin
は唯一の "インデックス" をチェックするということでした)は、他のタイプでも使用できます。
>>> 1.2 in pd.Series([1.3, 1.2])
True
>>> 1 in pd.Series([1.3, 1.2]) # also works for index
True
私は解決策には興味がありません。私は単にwhatever in s.values
またはnp.any(s.eq(whatever))
を使うことができます。私はなぜそれがそのように振る舞うか(または私は何かが不足していますか)知りたいです。