python - 按其他列填充 NaN 值
问题描述
您好,我有一个 df,例如
COL1 COL2
SEQ1 SEQ1_67
SEQ2 NaN
SEQ3 SEQ3_7788
SEQ5 SEQQ0
SEQ6 NaN
SEQ7 NaN
我想COL2
NaN
用相应的内容填充值COL1
并得到
COL1 COL2
SEQ1 SEQ1_67
SEQ2 SEQ2
SEQ3 SEQ3_7788
SEQ5 SEQQ0
SEQ6 SEQ6
SEQ7 SEQ7
解决方案
利用:
df.COL2 = df.COL2.mask(df.COL1.eq(df.COL2))
或者:
df.loc[df.COL1.eq(df.COL2), 'COL2'] = np.nan
print (df)
COL1 COL2
0 SEQ1 SEQ1_67
1 SEQ2 NaN
2 SEQ3 SEQ3_7788
3 SEQ5 SEQQ0
4 SEQ6 NaN
5 SEQ7 NaN
对于反向更简单的是使用Series.fillna
:
df.COL2 = df.COL2.fillna(df.COL1)
推荐阅读
- python - 成功将 Midas 模型转换为 ONNX 后的 Onnxruntime 测试错误
- c# - 无法使用 ProcessStartInfo 启动 UWP 应用
- xunit.net - 在 Xunit .net core 3.1 中维护会话值
- python - 如何从 Curses 中显示外部程序?
- javascript - 在使用 React 渲染到 DOM 之前打印组件
- firebase-authentication - 通过 GCP 身份平台将 okta 用作 IdP 时如何从 okta 获取用户数据?
- c++ - 教程中旧代码中范围解析运算符的问题
- python - 添加的类如何使用主类的属性?
- c# - 注册用户无法登录asp.net身份
- sql - SQL 中的字符串到日期