我在使用熊貓索引時遇到了使用isin方法的問題,它總是返回False。熊貓索引isin方法
from pandas import DataFrame
df = DataFrame(data=[['a', 1], ['b', 2], ['c', 3]], index=['N01', 'N02', 'N03'])
df.index.isin(['01', '02'])
回報
array([False, False, False], dtype=bool)
我在使用熊貓索引時遇到了使用isin方法的問題,它總是返回False。熊貓索引isin方法
from pandas import DataFrame
df = DataFrame(data=[['a', 1], ['b', 2], ['c', 3]], index=['N01', 'N02', 'N03'])
df.index.isin(['01', '02'])
回報
array([False, False, False], dtype=bool)
使用str.contains
,並通過一個正則表達式模式:
In[5]: df.index.str.contains('01|02')
Out[5]: array([ True, True, False], dtype=bool)
isin
查找精確匹配這就是爲什麼你得到所有False
陣列返回
df.index.isin(['01', '02'])
方法在你的例子中是檢查如果每個的索引中的值爲等於至其中一個值爲(與SQL類似)。
因此你的情況檢查: 'N01'=='01' or 'N01' == '02'
這是False
的.isin()
你的情況正確的用法是:
from pandas import DataFrame
df = DataFrame(data=[['a', 1], ['b', 2], ['c', 3]], index=['N01', 'N02', 'N03'])
df.index.isin(['N01', 'N02'])
這將導致 array([True, True, False], dtype=bool)