我在数据框中有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”的行。有没有简单的方法可以做到这一点?
与一起使用分配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] 删除。
我来说两句