在使用pandas索引时,我正在使用isin方法,它总是返回False。
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)
答案 0 :(得分:5)
使用str.contains
并传递正则表达式模式:
In[5]: df.index.str.contains('01|02')
Out[5]: array([ True, True, False], dtype=bool)
isin
查找完全匹配,这就是您返回所有False
数组的原因
答案 1 :(得分: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)