熊猫数据框基于嵌套的if条件设置列值

最高

我在数据框中有4列,并希望根据以下条件更改第2列中的所有值:

if pd.isnull(df['COL2']) or df['COL2'] == "SOME_NAME":
    if pd.isnull(df['COL3']) == False:
        df['COL2'] = df['COL3']
    else:
        df['COL2'] = "DEFAULT" 

因此基本上,如果col2为空或具有某些特定名称,如果col3不为空,则将其替换为col3,否则替换为默认值

我遍历了df,但是匹配并没有替换所有值。我有一些col2值仍设置为“ SOME_NAME”的行。有没有简单的方法可以做到这一点?

cs95

与一起使用分配loc,仅更改满足您条件的那些行。

i = df['COL2'].isnull() | df['COL2'].eq('SOME_NAME')
j = df.loc[i, 'COL3']

df.loc[i, 'COL2'] = j.where(j.notnull(), 'DEFAULT') 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章