【发布时间】:2019-08-25 03:49:23
【问题描述】:
我想将所有 NaN 变量放在我的一列中,但是当我使用 df.dropna(axis=0, inplace=True) 时,它会擦除我的整个数据框。为什么会这样?
df.dropna 和 df.dropna(axis=0, inplace=True) 我都用过,去掉 NaN 也没用。
我正在对我的数据进行分箱,以便我可以运行高斯模型,但我无法使用 NaN 变量执行此操作,我想删除它们并且仍然有我的数据框来运行模型。
【问题讨论】:
-
您能否发布原始数据、重新创建 df 的代码以及产生错误结果的代码。请注意,只需从一列中删除
NaN,您就可以执行df['Col'] = df['Col'].dropna(),您所写的是删除包含任何NaN的行,这意味着如果您的所有行至少包含1 个NaN,那么整个df将被删除 -
尝试
df.dropna(how='all',axis=0, inplace=True),如果你不使用所有,它将删除所有具有NaN的行 -
听起来你在某列的每一行都有一个 NaN。除了 anky_91 所说的,您还可以让 dropna 只查看列(或行)的子集。所以 df = df.dropna(subset=["col1_name"]) 它只会删除该列中具有 NaN 值的行。pandas.pydata.org/pandas-docs/stable/reference/api/…
-
@EdChum 我已经分享了之前和之后的数据集
-
@pramire1 你想在这里实现什么? dropna() 将删除所有行,因为每行中的一列或另一列是 nan
标签: python pandas nan gaussian naivebayes