pandas 检查多索引数据帧中的一个特定索引中是否存在值

Kev*_*vin 3 python indexing dataframe pandas

我有一个名为3 (水果、颜色、味道)的MultiIndex数据框。我想搜索 1 个特定的存在 , 看看其中是否存在。dfindexesindexindexColorvalue

例如:代码看起来像这样。Colorindex数据框中的一个而不仅仅是一列。

if 'purple' in 'Color':
    print('yes')
else:
    print('no')
Run Code Online (Sandbox Code Playgroud)

我只想让它搜索而Color不是其他任何indexes/columns

                       Quantity     Quality
Fruit   Color   Taste
apple   red     tart     12          good
lemon   yellow  sour     11          average
grapes  purple  sweet     5          bad
lime    green   citrus    3          excellent
Run Code Online (Sandbox Code Playgroud)

非常感谢您的参与!

not*_*hal 6

可以用来get_level_values过滤。

if "purple" in df.index.get_level_values('Color'):
    print('yes')
else:
    print('no')
Run Code Online (Sandbox Code Playgroud)


ank*_*_91 5

如果您想要表格输出,可以使用它:

def check(data:pd.DataFrame,l:list):
    c = data.index.get_level_values("Color").isin(l)
    return np.where(c,'yes','no')

df['Result'] = check(df,['purple'])
Run Code Online (Sandbox Code Playgroud)
print(df)

                       Quantity    Quality Result
Fruit  Color  Type                              
apple  red    tart          12       good     no
lemon  yellow sour          11    average     no
grapes purple sweet          5        bad    yes
lime   green  citrus         3  excellent     no
Run Code Online (Sandbox Code Playgroud)