小编K C*_*man的帖子

无法使用包含 NA / NaN 值的非布尔数组进行掩码...但没有任何缺失值

我本来可以正常工作,但现在我改变了“某些东西”,它就不再工作了。我在 Excel 中有一个表,我正在将其读入 df. 这按预期工作。我读入它,然后对其进行过滤,这样我就只有符合特定条件的数据行。这是代码:

    df = excel_range_upper_left.options(pd.DataFrame, expand='table', header=1,
            index=False).value

    print(f'Check for missings')
    for c in df.columns:
        count = df[c].isnull().sum()
        print(f'Col {c} has {count} missing values')
    print(f'Done checking for missings')

    df = df[df["Phase"].str.contains('2')]  #, na=False)]
Run Code Online (Sandbox Code Playgroud)

for 循环循环遍历 df 列以查找缺失值。它们全部返回为 0 个缺失值。

然后我执行最后一条语句,它(我认为)应该简单地将 df 过滤为一个新的 df(同名),该新的 df 在“Phase”列中必须具有字符串值“2”。以及它出错的地方Cannot mask...

我的猜测是表中的某处仍然缺少值,但我已经用尽了找到它的能力(我也尝试了以下操作 - 但它的结果与原始 df 相同,并且仍然出错:

    print(f'{exer_df.dropna(axis=1)}')
Run Code Online (Sandbox Code Playgroud)

如果我将过滤器行更改为以下内容,使其包含该na=False选项,则一切正常。但我不知道为什么...

exer_df = exer_df[exer_df["Phase"].str.contains('2', na=False)]
Run Code Online (Sandbox Code Playgroud)

有人有任何见解和帮助吗?

为了完整起见,以下是 for 循环的结果和错误:

Check for missings
Col Type as 0 missing values
Col Sub-Type as …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

21
推荐指数
2
解决办法
5万
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1