在下面的代码行中,我尝试根据条件将lambda公式仅应用于选定的行。我不希望公式适用于数据集中的每一行。代码似乎正常工作,但是我收到一条警告,内容为“ SettingWithCopyWarning:试图在DataFrame的切片副本上设置一个值”(不确定为什么吗?),所以我不确定这是否是正确的方法吗?另外,如果有一种更有效/更简便的方法,我将不胜感激。谢谢。
我基本上是想说一列GlobalName =''THEN是否应用lambda(它具有自己的if语句)
df['GlobalName'][df['GlobalName']==''] = df['IsPerson'].apply(lambda x: x if x==True else '')
答案 0 :(得分:0)
根据文档,似乎正确的符号是=的左边是:
df.GlobalName[df.loc[:, 'GlobalName'].eq('')]
也许尝试一下,看看是否收到警告
答案 1 :(得分:0)
更新:此解决方案有效:
df ['GlobalName'] = np.where(df ['GlobalName'] =='',df ['IsPerson']。apply(lambda x:x if x == True else''),df [ 'GlobalName'])