2017-06-05 188 views
4

我在使用熊貓索引時遇到了使用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) 

回答

4

使用str.contains,並通過一個正則表達式模式:

In[5]: df.index.str.contains('01|02') 

Out[5]: array([ True, True, False], dtype=bool) 

isin查找精確匹配這就是爲什麼你得到所有False陣列返回

0

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)