Pandas Dataframe行选择组合条件索引和列值

Egi*_*ila 8 python pandas

我想根据索引中的值与特定列中的值结合从数据框中选择行:

df = pd.DataFrame([[0, 2, 3], [0, 4, 1], [0, 20, 30], [40, 20, 30]], 
                  index=[4, 5, 6, 7], columns=['A', 'B', 'C'])


    A   B   C
4   0   2   3
5   0   4   1
6   0  20  30
7  40  20  30
Run Code Online (Sandbox Code Playgroud)

df.loc[df['A'] == 0, 'C'] = 99
Run Code Online (Sandbox Code Playgroud)

我可以选择与列A = 0的所有行,并用99替换在列C中的值,但如何选择= 0和索引<6(我想选择的索引与该选择结合与A列中的所有行柱)?

sac*_*cuL 7

您可以在loc语句中使用多个条件:

df.loc[(df.index < 6) & (df.A == 0), 'C'] = 99
Run Code Online (Sandbox Code Playgroud)

  • @Peruz 事实并非如此。搜索表达式“(df.index &lt; 6)”和“(df.A == 0)”各自独立创建布尔系列作为数据的掩码,并且“&amp;”运算符将它们组合起来。 (2认同)