使用应用函数时的空单元格

Empty cells when using an apply function

因此,我试图根据哪一列具有可用于新列的数据来计算一列或另一列的值。这是我现在的代码。它似乎没有注意到何时没有数据存在并且总是转到“else”语句。我的数据框是一个导入的 excel 文件。感谢您的任何建议!

def create_sulfide_col(row):
   if row["Sulphate-S(HCL Leachable)_%S"] is None:
       val = row["Total-S_%S"] - row["Sulphate-S(HCL Leachable)_%S"]
   else:
       val = ["Total-S_%S"]- df["Sulphate-S_%S"]

   return val

df["Sulphide-S(calc)-C_%S"] = df.apply(lambda row: create_sulfide_col(row), axis='columns')

这可以通过使用 numpy.where

来完成

将 numpy 导入为 np

df['newcol'] = np.where(df["Sulphate-S(HCL Leachable)_%S"].isna(),df["Total-S_%S"]- df["Sulphate-S(HCL Leachable)_%S"],df["Total-S_%S"]- df["Sulphate-S_%S"])