python - 将列与 NULL 值相乘
问题描述
我正在尝试编写一个 python 代码,在其中将列值乘以其他列。但是,我的一个 C 列中的某些值是 NULL。我很难编程,如果值为 NULL,则将其切换为 1。
A B C Result should be: X Y
5 3 2 10 6
10 6 10 6
15 9 15 9
20 12 8 160 96
这是我尝试过的python代码:
if df[C] is NONE:
df[X] = df[A]*1
else:
df[X] = df[A]*df[C]
依此类推df[B]
。但是,它仍然给我在 excel 中的空白,而不是我需要的“10 & 6”和“15 & 9”。
我用我的代码得到的结果:
X Y
10 6
160 96
解决方案
你可以使用np.where
df
Out[97]:
A B C
0 5 3 2.0
1 10 6 NaN
2 15 9 NaN
3 20 12 8.0
np.where(df.C.isna(),df.A,df.A*df.C)
Out[98]: array([ 10., 10., 15., 160.])
你的 if 函数应该带有 for 循环
推荐阅读
- android - 面临构建颤振工具的问题......同时更新颤振
- vba - 远程服务器机器不存在或不可用”
- sql - 如何为以下要求构建 SQL 查询?
- javascript - 声明增量 Javascript 变量
- java - java.lang.RuntimeException:无法启动活动 ComponentInfo。二进制 XML 文件第 8 行:膨胀类 com.mapbox.vision.view.VisionView 时出错
- javascript - 如何在标题上添加波纹效果
- java - 集成测试中@DirtiesContext 和 FlywayConfig bean 组合出现异常
- autodesk-forge - 欧特克锻造。如何模糊选定对象以外的对象?
- android-studio - 更新/安装最新的 Flutter 包 (pubspec.yaml)
- java - 在hibernate vs JDBC或mybatis之间选择的最佳实践仅在数据库中插入而在java中的表中没有任何关系