python缺失数据处理,python填补缺失值
缺失值是指粗糙数据中因信息缺失而导致的数据的聚类、分组、删除或截断。下面的文章主要介绍Python处理缺失值的八种不同方法,通过示例代码非常详细地介绍。有需要的可以参考一下。
00-1010前言1。删除缺少值的行或列2。删除只有缺失值的行或列3。根据阈值4删除行或列。基于列5的特定子集删除。填入一个常数值6。填写合计值7。替换为上一个或下一个值8。用另一个数据框填充摘要。
目录
缺失值可能是数据科学中最不受欢迎的值,然而,它们总是存在。忽视缺失的价值也是不合理的,因此我们需要找到一种有效且恰当的方法来处理它们。
在本文中,我们将介绍8种不同的方法来解决丢失值的问题。哪种方法最适合特定情况取决于数据和任务。
让我们首先创建一个样本数据框,并向其中添加一些缺失值。
我们有一个10行6列的数据框。
下一步是添加缺失的值。我们将使用loc方法来选择行和列的组合,并使它们等于“np.nan”,这是标准的缺失值表示之一。
这是数据框现在的样子:
和itemmeasure1列具有整数值,但由于缺少值,它们已被转换为浮点数。
在Pandas 1.0中,引入了整数类型缺失值表示(),因此我们也可以在整数列中包含缺失值。但是,我们需要显式声明数据类型。
尽管缺少值,我们现在可以保留整数列。
现在我们有一个数据框,其中有一些缺失值。是时候寻找不同的方法来处理它们了。
前言
一种选择是删除包含缺失值的行或列。
使用默认参数值,dropna函数删除包含任何缺失值的行。数据框中只有一行没有任何缺失值。同时,我们还可以使用axis参数选择删除至少有一个缺失值的列。
1. 删除有缺失值的行或列
在另一种情况下,一列或一行充满了缺失值。这样的列或行是没用的,我们可以删除。
dropna函数也可以用于此目的。我们只需要更改how参数的值。
2. 删除只有缺失值的行或列
基于“任何”或“全部”的删除并不总是最佳选择。有时我们需要删除“大量”或“一些”缺少值的行或列。
我们不能把这样的表达式赋给how参数,但是熊猫给我们提供了一个更准确的方法,即thresh参数。
例如,“thresh=4”意味着至少保留4行非缺失值。其他的将被丢弃。
我们的数据框有6列,因此缺少3个或更多值的行将被删除。
只有第三行有2个以上的缺失值,所以它是唯一被丢弃的行。
3. 根据阈值删除行或列
删除列时,我们只能考虑部分列。
dropna函数的子集参数用于此任务。例如,我们可以删除Measure 1或Measure 2列中缺少值的行,如下所示:
到目前为止,我们已经看到了基于缺失值删除行或列的不同方法。放弃不是唯一的选择。在一些
情况下,我们可能会选择填充缺失值而不是删除它们。
事实上,填充可能是更好的选择,因为数据意味着价值。 如何填补缺失值,当然取决于数据的结构和任务。
fillna 函数用于填充缺失值。
5. 填充一个常数值
我们可以选择一个常量值来替代缺失值。如果我们只给 fillna 函数一个常量值,它将用该值替换数据框中的所有缺失值。
更合理的方法是为不同的列确定单独的常量值。 我们可以将它们写入字典并将其传递给 values 参数。
item 列中的缺失值替换为 1014,而 measure 1 列中的缺失值替换为 0。
6. 填充聚合值
另一种选择是使用聚合值,例如平均值、中位数或众数。
下面这行代码用该列的平均值替换了第 2 列中的缺失值。
7. 替换为上一个或下一个值
可以用该列中的前一个或下一个值替换该列中的缺失值。在处理时间序列数据时,此方法可能会派上用场。 假设您有一个包含每日温度测量值的数据框,但缺少一天的温带。 最佳解决方案是使用第二天或前一天的温度。
fillna 函数的方法参数用于执行此任务。
bfill向后填充缺失值,以便将它们替换为下一个值。看看最后一栏。 缺失值被替换到第一行。 这可能不适合某些情况。
值得庆幸的是,我们可以限制用这种方法替换的缺失值的数量。 如果我们将 limit 参数设置为 1,那么一个缺失值只能用它的下一个值替换。 后面的第二个或第三个值将不会用于替换。
8. 使用另一个数据框填充
我们还可以将另一个数据帧传递给 fillna 函数。 新数据框中的值将用于替换当前数据框中的缺失值。
将根据行索引和列名称选择值。 例如,如果 item 列的第二行中存在缺失值,则将使用新数据框中相同位置的值。
以上是具有相同列的两个数据框。 第一个 没有任何缺失值。
我们可以使用 fillna 函数如下:
df 中的值将替换为 df2 中关于列名和行索引的值。
总结
缺失将永远存在于我们的生活中。 没有最好的方法来处理它们,但我们可以通过应用准确合理的方法来降低它们的影响。我们已经介绍了 8 种不同的处理缺失值的方法,使用哪一个取决于数据和任务。
到此这篇关于Python处理缺失值的8种不同方法的文章就介绍到这了,更多相关Python处理缺失值内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。