3
這可能很基本,但爲什麼看起來像in
不適用於包含對象或字符串的Series
?爲什麼在系列包含字符串時不能`in`搜索值
>>> import pandas as pd
>>> s = pd.Series(['a', 'b', 'c'])
>>> 'a' in s
False
>>> 'a' in s.astype('S1')
False
的Series.__contains__
文檔是相當稀少:
[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 in s
True
但後來:爲什麼它(似乎)使用其他類型:
>>> 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))
。我想知道爲什麼它的行爲方式(或者我錯過了什麼?)。