Python 如何在索引列上使用正则表达式选择dataframe行?

Python 如何在索引列上使用正则表达式选择dataframe行?,python,pandas,dataframe,Python,Pandas,Dataframe,我是熊猫新手。 下面是一个例子的问题 df = pd.DataFrame(data={'id':['john','joe','zack']}) 我知道我可以像这样选择id列包含jo的行 mask = df['id'].str.contains('jo') df[mask] 但假设id列已被索引 df = df.set_index('id') 现在,如何选择索引列包含jo的行?您需要将id更改为索引: 您需要将id更改为索引: 或者我们可以重置索引,进行计算,然后再次将“id”设置为索引,如

我是熊猫新手。 下面是一个例子的问题

df = pd.DataFrame(data={'id':['john','joe','zack']})
我知道我可以像这样选择id列包含jo的行

mask = df['id'].str.contains('jo')
df[mask]
但假设id列已被索引

df = df.set_index('id')
现在,如何选择索引列包含jo的行?

您需要将id更改为索引:

您需要将id更改为索引:


或者我们可以重置索引,进行计算,然后再次将“id”设置为索引,如下所示:df.reset_index[df.reset_index['id'].str.contains'joe'].set_index'id'或者我们可以重置索引,进行计算,然后再次将“id”设置为索引,如下所示:df.reset_index[df.reset_index['id'].str.contains'joe'].set_index'id'。设置索引'id'
df = pd.DataFrame(data={'id':['john','joe','zack'],
                        'col':[1,2,3]})

df = df.set_index('id')
df1 = df[df.index.str.contains('jo')]
print (df1)
      col
id       
john    1
joe     2