熊猫指数是方法

时间:2017-06-05 10:29:56

标签: python pandas indexing

在使用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)

2 个答案:

答案 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)