【发布时间】:2019-12-02 14:17:19
【问题描述】:
我正在学习在 Python 中使用 dropna() 函数,以删除包含 NaN/'?' 的行/列其中的价值观。但是,即使在网上看到各种解决方案后,尽管没有语法错误,我也无法删除数据。
我尝试了以下解决方案:
- Pandas dropna() function not working我试过了,但数据框仍然没有改变。
- Python Pandas dropna method这个方法给我一个语法错误
第一次尝试
df1 = df.dropna()
df1
继续
df1.dropna(inplace=1)
df1
代码的第一部分给了我原始数据框
第二部分给了我以下错误:
----------------------------------- ---------------------------- ValueError Traceback(最近一次调用 最后)在() ----> 1 df1.dropna(inplace=1) 2 3 df1
~\Anaconda3\lib\site-packages\pandas\core\frame.py 在 dropna(self, 轴,如何,阈值,子集,就地)4259 1 蝙蝠侠 蝙蝠车 1940-04-25 4260 """ -> 4261 inplace = validate_bool_kwarg(inplace, 'inplace') 4262 if isinstance(axis, (tuple, list)): 4263 # GH20987
~\Anaconda3\lib\site-packages\pandas\util_validators.py 在 validate_bool_kwarg(值,arg_name) 224 raise ValueError('对于参数 "{arg}" 预期类型 bool,收到' 第225章 --> 226 typ=type(value).name)) 227 返回值 228
ValueError: 对于参数“就地”预期类型 bool,接收类型
另外,有没有更好的替代 dropna() 函数的方法?
编辑 1
- 链接到我的 Python 笔记本Dealing with Missing Data.ipynb
- 我试图将 inplace 的参数值更改为 True,但它给了我以下错误:
NameError:名称“df1”未定义
PS 所有错误和问题都在代码中可见
使用的 CSV 文件的链接 = CSV
【问题讨论】:
-
这意味着您实际上没有
NaN值,对于第二个错误,错误消息非常清楚,通过inplace=True,此外我们需要您的数据和代码来重现此 -
第二个错误可读性足够——预期类型bool表示
True或False,而不是1或0。至于为什么你的表没有改变,没有一个小示例表是不可能回答的.如果我不得不猜测,您可能认为“na”不是。 -
请提供minimal reproducible example,以便我们重现您的错误
-
我已经添加了代码和我遇到的错误