python - 在 pandas 数据框中删除特定条件下的值

标签 python pandas dataframe

我有一个如下所示的数据框:

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/

相关文章:

python - 如果没有给出任何操作,让 python 显示帮助屏幕

python - 为什么会出现两个而不是一个图形对象?

python - Pandas 的时间事件研究

python - 为什么 Python 脚本会跳过某些条目而不跳过其他条目?

python - Pandas df 上的双 for 循环

python - SQLAlchemy 查询动态字段

python - 使用多索引数据框时如何在 seaborn 热图中自定义 y 标签?

python - 使用长度不均匀的列表项创建 pandas df 列?

python - 运行 Pairwise Distance 函数后如何维护或恢复 Dataframe 索引?

R:在 data.frame 中创建具有特定非连续条件的新列