Select 按索引和布尔索引

Select by index and by boolean indexing

输入程序:

import pandas as pd

df = pd.DataFrame({"A" : ["A0","A1","A2","A3"],
                   "B" : ["dog","cat","dog","dog"]})

myindexes = pd.Index([1,2])

    A    B
0  A0  dog
1  A1  cat
2  A2  dog
3  A3  dog

我想修改 df 以获得以下输出数据帧:

       A    B
0     A0  dog
1     A1  cat
2  match  dog
3     A3  dog

我正在尝试通过索引值进行选择(使用变量 myindexes 通过布尔索引器进行选择(必须是 dog 在列 B).

Pandas 不能容忍下面一行...但这就是我想表达的想法:

df.loc[(myindexes) & (df["B"] == "dog"), "A"] = "match"

代替(myindexes),使用df.index.isin(myindexes):

df.loc[df.index.isin(myindexes) & (df["B"] == "dog"), "A"] = "match"

输出:

>>> df
       A    B
0     A0  dog
1     A1  cat
2  match  dog
3     A3  dog