在熊猫数据框中的特定条件下删除值

Mon*_*ogy 4 python dataframe pandas

我有一个如下数据框:

A       B       C
4.43    NaN     1.11
3.70    0.48    0.79
2.78   -0.29    1.26
1.78    2.90    1.13
40.70  -0.03    0.55
51.75   0.29    1.45
3.65    1.74    0.37
2.93    1.56    1.64
3.43    NaN     NaN
2.93    NaN     NaN
10.37   NaN     NaN
Run Code Online (Sandbox Code Playgroud)

现在,如果A列> 7,则要删除B列和C列,如下所示:

A       B       C
4.43    NaN     1.11
3.70    0.48    0.79
2.78   -0.29    1.26
1.78    2.90    1.13
40.70   NaN     NaN
51.75   NaN     NaN
3.65    1.74    0.37
2.93    1.56    1.64
3.43    NaN     NaN
2.93    NaN     NaN
10.37   NaN     NaN
Run Code Online (Sandbox Code Playgroud)

我该如何实现?

jez*_*ael 5

使用DataFrame.mask默认值NaN替换为掩码:

df[['B','C']] = df[['B','C']].mask(df.A > 7)
Run Code Online (Sandbox Code Playgroud)

DataFrame.loc指定np.nan

df.loc[df.A > 7, ['B','C']] = np.nan
Run Code Online (Sandbox Code Playgroud)
print (df)
        A     B     C
0    4.43   NaN  1.11
1    3.70  0.48  0.79
2    2.78 -0.29  1.26
3    1.78  2.90  1.13
4   40.70   NaN   NaN
5   51.75   NaN   NaN
6    3.65  1.74  0.37
7    2.93  1.56  1.64
8    3.43   NaN   NaN
9    2.93   NaN   NaN
10  10.37   NaN   NaN
Run Code Online (Sandbox Code Playgroud)