如果使用 Pandas 列中的单元格为空

if cell in column is null using Pandas

如果 "Independent" 列等于 0、1 或 null,我想将变量设置为 0。我一直在尝试这样的事情:

        df["Iflag"] = df.Independent.where((df.Independent == 0) | (df.Independent == 1 )|(df.Independent.isnull())).astype(int)
            Iflag = df[df.Iflag == 0]
            pd.DataFrame(Iflag, columns=["LocIdent","Independent"]).to_csv(Targcsv, mode='ab')

我收到一条错误消息,提示我无法将 NA 转换为整数。当我放弃检查以查看 Independent 是否为 null 时,此代码有效。我的问题是,编写在 Pandas 中包含空值的 if 语句的最佳方法是什么?

我只是先填充 nan 值,然后您的代码才能工作,NaN 无法使用整数表示,因此出现错误。

所以像

# fill the nan values
df.Independent = df.Independent.fillna(0)
# set any values that are 1 to 0
df.loc[df.Indepedent == 1, 'Independent'] = 0
# take a view of the df where the value is 0
Iflag = df[df.Independent == 0]
pd.DataFrame(Iflag, columns=["LocIdent","Independent"]).to_csv(Targcsv, mode='ab')

如果您要再次将值设置为 0,则检查值在哪里是多余的,所以您需要做的就是找到它已经为 1 的行,将它们设置为 0,然后取满足条件的 df 视图。