python - dropna() 函数的问题和 dropna() 的替代方案
问题描述
我正在学习在 Python 中使用 dropna() 函数,以删除包含 NaN/'?' 的行/列 其中的价值观。但是,即使在网上看到各种解决方案后,尽管没有语法错误,我也无法删除数据。
我尝试了以下解决方案:
- Pandas dropna() 函数不起作用我试过这个,但数据框仍然没有改变。
- Python Pandas dropna 方法这个方法给了我一个语法错误
第一次尝试
df1 = df.dropna()
df1
继续
df1.dropna(inplace=1)
df1
代码的第一部分给了我原始数据框
第二部分给了我以下错误:
-------------------------------------------------- ------------------------- ValueError Traceback (最近一次调用最后一次) in () ----> 1 df1.dropna(inplace=1) 2 3 DF1
~\Anaconda3\lib\site-packages\pandas\core\frame.py 在 dropna(self,axis,how,thresh,subset,inplace) 4259 1 Batman Batmobile 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 in validate_bool_kwarg(value, arg_name) 224 raise ValueError('For argument "{arg}" expected type bool, received '225 'type {typ}.'.format (arg=arg_name, --> 226 typ=type(value).name ) ) 227 返回值 228
ValueError:对于参数“就地”预期类型 bool,接收类型
此外,是否有更好的替代 dropna() 函数?
编辑 1
- 链接到我的 Python 笔记本处理缺失数据.ipynb
- 我试图将 inplace 的参数值更改为 True,但它给了我以下错误:
NameError:名称“df1”未定义
PS 所有的错误和问题都在代码中可见
链接到使用的 CSV 文件 = CSV
解决方案
首先更换?与南,像这样:
df.replace('?', np.nan)
然后使用dropna删除所有缺失值(您刚刚在上面替换的 nan,如下所示:
df1 = df.dropna()
df1
然后使用inplace
将 DataFrame 与有效条目保持在同一个变量中,如下所示:
df1.dropna(inplace=True)
df1
推荐阅读
- vhdl - 如何从用户 VHDL 获取多个输入
- c - 使用宏转换结构中整数字段的字节序
- operating-system - 我们是否可以在无限或荒谬的数量下获得 0 页面错误率?
- python - pandas 调整 Excel 表的大小以匹配较大的表以进行比较
- css - 向上滚动时奇怪的消失网站(仅在 Chrome 中)
- reactjs - 在初始页面加载后,是否可以将当前组件作为 React.Suspense 的“后备”内容安装?
- powershell - '[' 后缺少类型名称
- tensorflow - 构建 TensorFlow 时链接 MKL 失败
- python - Python np.asarray 不返回真实形状
- wordpress - 如何将移动应用程序与 Wordpress 集成