我本来可以正常工作,但现在我改变了“某些东西”,它就不再工作了。我在 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)