我曾试图研究类似的问题,但就我所搜索的而言,我找不到任何有帮助的东西
我有一份从数据库中提取的每日报告,但其中有一条信息正是需要交付的信息。下面是我提取的一个示例:
col1 col2
wrongstring correct
correctstring correct
correctstring correct
NaN correct
NaN NaN
col2中的信息已经使用dict和replace进行了更正,并且NaN缺少数据库中的值,因此我需要将其替换为缺少值的正确字符串。今天,它是在Excel中用vlookup完成的,如果我和if希望在脚本中实现它,那么我们可以获得一些时间
我想做的是:
如果df['col1']=errorString,则新列将使用df['col2']值
如果df['col1']为NaN,则新列使用df['col2']值
如果两列都为NaN,则新列应使用newstring
否则保持df['col1']值
到目前为止,我已经找到了这段导致错误的代码(我知道它来自.isnull()部分,但是我找不到修复它的方法):
df['newcolumn'] = [x in df['col2'] if x=='wrongstring' else ('newstring' if ((df['col1'].isnull()) and (df['col2'].isnull())) else x in df['col1'])
for x in df['col1']]
如果有人能帮我解决这个问题,也许我使用的方法不正确,或者我遗漏了什么。结果应该如下所示:
col1 col2 newcolumn
wrongstring correct correct
correctstring correct correctstring
correctstring correct correctstring
NaN correct correct
NaN NaN newstring
谢谢你的帮助。干杯
方法1:
np.select
对于多条件列,我们可以使用
np.select
:方法2:
Series.mask
&Series.fillna
:我们可以做条件
replace
相关问题 更多 >
编程相关推荐