pandas - 根据特定列上的条件用特定值填充数据框中的行
问题描述
我有一个数据框df
:
df=
A B C D
1 4 7 2
2 6 -3 9
-2 7 2 4
我有兴趣将整行值更改为列中0
的元素C
是否为负。即 if df['C']<0
,其对应的行应填充0
如下所示的值:
df=
A B C D
1 4 7 2
0 0 0 0
-2 7 2 4
解决方案
您可以使用DataFrame.where
或mask
:
df.where(df['C'] >= 0, 0)
A B C D
0 1 4 7 2
1 0 0 0 0
2 -2 7 2 4
另一种选择是通过乘法进行简单屏蔽:
df.mul(df['C'] >= 0, axis=0)
A B C D
0 1 4 7 2
1 0 0 0 0
2 -2 7 2 4
您还可以直接通过如下评论loc
所示设置值:
df.loc[df['C'] <= 0] = 0
df
A B C D
0 1 4 7 2
1 0 0 0 0
2 -2 7 2 4
这具有修改原始 DataFrame 的额外好处(如果您不想返回副本)。
推荐阅读
- go - 在取消上下文之前,无法同时使用 goroutine 来查找最大值
- c# - 从 svn 存储库中获取所有 pdf 和 doc 文件
- reporting-services - 根据 rdlc 报告中的组详细信息显示标题徽标
- python - RuntimeError: 微调 Wav2Vec2 模型时,空白必须在标签范围内
- c - 32 位定点算术 1x1 不等于 1
- uwp - 为什么 SvgImageSource Image,在 UWP 中看起来比 BitmapImage 模糊?
- contacts - qpython -(联系人列表命令)
- bash - 为什么 ipconfig /all 不能在 WSL bash 中工作?
- angular - 通过虚拟机连接时从服务器获取超时
- javascript - Bootstrap-vue b-table将@row-clicked数据传递到表或模板*外部*的b-card?