python - 替换列值取决于熊猫中的其他列和条件
问题描述
您好,我有一个数据框,例如
COL1 COL2 COL3 COL4 COL5
G1 NaN NaN NaN A
G1 NaN Lop NaN A
G2 NaN NaN NaN B
G3 Sil NaN SLO A
G4 NaN NaN NaN C
G4 LIJ KYI NaN B
然后用if & COL5替换COL2
值的想法是OK
COL2,COL3,COL4 == "NaN"
list("A","B")
我应该得到
COL1 COL2 COL3 COL4 COL5
G1 OK NaN NaN A
G1 NaN Lop NaN A
G2 OK NaN NaN B
G3 Sil NaN SLO A
G4 NaN NaN NaN C
G4 LIJ KYI NaN B
到目前为止,我尝试过:
tab['COL2'][(tab['COL2'].isna()) & (tab['COL3'].isna()) & (tab['COL4'].isna()) & tab['COL5'].str.contains("A|B"))] = "OK"
解决方案
试试all
+isna
df.loc[df.COL5.isin(['A','B']) & df[['COL2','COL3','COL4']].isna().all(1),'COL2']='OK'
df
Out[22]:
COL1 COL2 COL3 COL4 COL5
0 G1 OK NaN NaN A
1 G1 NaN Lop NaN A
2 G2 OK NaN NaN B
3 G3 Sil NaN SLO A
4 G4 NaN NaN NaN C
5 G4 LIJ KYI NaN B
推荐阅读
- python - 在 selenium 中读取 span 类数据
- python - Ubuntu 上的 WHOIS 命令只返回响应代码?
- python - 从熊猫列中的列表中删除字符
- amazon-web-services - 如果在 aws cloud watch 中空闲 30 分钟,如何停止我们的实例
- powerbi - 如何在 Power BI 中使用 DAX 进行划分?
- java - Glassfish 5.1 缺少以前版本的模块
- magento2 - 报价表的自定义属性不保存价值
- autocomplete - 如何从输入中删除自动完成?
- python - Python pandas 试图计算字数
- php - PHP / HTML是否可以使用户上传文件不是强制性的