是否可以按索引名称过滤行?我需要输出索引名称以“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)
尝试使用 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)
你可以做这样的事情
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)
这也应该适用于多列