Pandas dataframe with MultiIndex:检查索引中是否包含字符串

2024-05-15 11:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个多索引pandas数据帧,它看起来像下面的一个,取自documentation。在

import numpy as np
import pandas as pd

arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
          np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]

df = pd.DataFrame(np.random.randn(8, 4), index=arrays)

看起来像这样:

^{pr2}$

现在我只想在MultiIndex的第二级中包含“ne”的行。在

有没有办法对(部分)包含的字符串进行多重索引切片?在


Tags: 数据importpandasfoodocumentationasnpbar
1条回答
网友
1楼 · 发布于 2024-05-15 11:27:41

您可以使用如下面具:

df = df.iloc[df.index.get_level_values(1).str.contains('ne')]

返回:

^{pr2}$

编辑: 也可以在多个级别上应用逻辑掩码,例如:

df = df.iloc[(df.index.get_level_values(0).str.contains('ba')) | (df.index.get_level_values(1).str.contains('ne'))]

退货:

bar one  0.620279  1.525277  0.379649 -0.032608
    two  0.465240 -0.190038  0.795730  1.720368
baz one  0.986828 -0.080394 -0.303319  0.747483
    two  0.487534  1.597006  0.114551  0.299502
foo one -0.085700  0.112433  0.704043  0.264280
qux one -0.291758 -1.071669  0.794354 -1.805530

相关问题 更多 >