我有一个如下所示的数据框:
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
现在如果 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
我怎样才能实现这一目标?
最佳答案
使用DataFrame.mask
使用默认值 NaN
替换为掩码:
df[['B','C']] = df[['B','C']].mask(df.A > 7)
或者DataFrame.loc
指定np.nan
:
df.loc[df.A > 7, ['B','C']] = np.nan
<小时/>
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
关于python - 在 pandas 数据框中删除特定条件下的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58820383/