使用条件语句将数据框填充为 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)
我正在处理大量数据帧,试图对它们进行计算。
每一个都有一列,六行。大多数数据框都已填充,而其他数据框要么有一两行包含 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)