使用条件语句将数据框填充为 0 作为值不起作用

Using a conditional statement to fill a dataframe with 0 as values not working

我正在处理大量数据帧,试图对它们进行计算。

每一个都有一列,六行。大多数数据框都已填充,而其他数据框要么有一两行包含 NaN 值,要么全部为 NaN 值。我不想用 0 替换具有一个或两个 NaN 值的数据帧,因为这会弄乱我正在处理的计算。相反,我只想删除那些,但对于所有具有 NaN 的数据帧,我想用 0 替换它们,这样我至少可以对其进行虚拟计算(否则我的整个父 for 循环停止并且不会运行)。这是我目前的代码:

if ex_1.isnull.values.any():
    ex_1 = ex_1.dropna(subset=['one'])
    ex_1 = pd.DataFrame(ex_1)
    if ex_1.empty:
       ex_1.one.fillna(value=0, inplace=True)

但是,当我 运行 这样做时,嵌套的 if 语句不会用 0 填充数据框,而是保持为空。这只对一些数据帧很重要,但我得到了错误:

TypeError: expected non-empty vector for x

我应该如何解决这个问题才能使其正常工作?

在替换之前检查是否所有行都是 NaN ex_1

if ex_1.isnull.values.any():
    if ex_1.dropna(subset=['one']).empty:
        ex_1.one.fillna(value=0, inplace=True)
    else:
        ex_1 = ex_1.dropna(subset=['one'])
        ex_1 = pd.DataFrame(ex_1)