按 Pandas 中以字符串开头的索引删除行

Aer*_*ria 5 pandas

是否可以按索引名称过滤行?我需要输出索引名称以“aa”和“wa”开头的行。

    col1   col2
b     3       3
d     4       4
fd    5       4
s     2       5
aaa   1       6
waa   4       2
Run Code Online (Sandbox Code Playgroud)

输出:

     col1   col2
aaa    1       6
waa    4       2
Run Code Online (Sandbox Code Playgroud)

Tar*_*han 6

尝试使用 startwith 并在其中传递一个元组。


import pandas as pd
df = pd.DataFrame({'col1': [3,4,5,2,1,4, 6], 'col2': [3,4,4,5,6,2, 6]}, index=['b', 'd', 'fd', 's', 'aa', 'wa', 'aaa'])

df[df.index.str.startswith(('aa', 'wa'))]
Run Code Online (Sandbox Code Playgroud)

输出:

    col1  col2
aa   1       6
wa   4       2
aaa  6       6
Run Code Online (Sandbox Code Playgroud)


Man*_*uel 2

你可以做这样的事情

df = pd.DataFrame({'id': ['b', 'd', 'fd', 's', 'aa', 'wa', 'aaa'], 'col1': [1,2,3,4,5,6, 7]})
df.set_index('id', inplace=True)
df.loc[(df.index.str.startswith('aa')) | (df.index.str.startswith('wa')), :]
Run Code Online (Sandbox Code Playgroud)

这也应该适用于多列