深圳网站快速备案,培训网站平台如何推广,国际外贸平台排名,珠海微信网站开发在现实生活中#xff0c;数据丢失始终是一个问题。诸如机器学习和数据挖掘之类的领域在模型预测的准确性方面面临着严重的问题#xff0c;因为缺少值会导致数据质量较差。在这些领域中#xff0c;缺失值处理是使模型更准确和有效的主要重点。什么时候以及为什么会丢失数据数据丢失始终是一个问题。诸如机器学习和数据挖掘之类的领域在模型预测的准确性方面面临着严重的问题因为缺少值会导致数据质量较差。在这些领域中缺失值处理是使模型更准确和有效的主要重点。什么时候以及为什么会丢失数据让我们考虑对产品进行在线调查。很多时候人们不会共享与他们有关的所有信息。很少有人会分享他们的经验但是不会分享他们使用该产品多长时间。很少有人分享他们使用该产品的时间他们的经历而不是他们的联系信息。因此总是以某种方式丢失一部分数据这在实时情况下非常普遍。现在让我们看看如何使用熊猫处理缺失值(例如NA或NaN)。# import the pandas libraryimportpandasaspdimportnumpyasnpdfpd.DataFrame(np.random.randn(5,3),index[a,c,e,f,h],columns[one,two,three])dfdf.reindex([a,b,c,d,e,f,g,h])printdf其输出如下-one two threea 0.077988 0.476149 0.965836b NaN NaN NaNc -0.390208 -0.551605 -2.301950d NaN NaN NaNe -2.000303 -0.788201 1.510072f -0.930230 -0.670473 1.146615g NaN NaN NaNh 0.085100 0.532791 0.887415使用重新索引我们创建了一个缺少值的DataFrame。在输出中NaN表示不是数字。检查缺失值为了使检测的缺失值更容易(和不同阵列dtypes)熊猫提供ISNULL()和NOTNULL()功能这也是对系列和数据帧的对象的方法-例importpandasaspdimportnumpyasnpdfpd.DataFrame(np.random.randn(5,3),index[a,c,e,f,h],columns[one,two,three])dfdf.reindex([a,b,c,d,e,f,g,h])printdf[one].isnull()其输出如下-a Falseb Truec Falsed Truee Falsef Falseg Trueh FalseName: one, dtype: bool清理/填充丢失的数据熊猫提供了多种清除缺失值的方法。fillna函数可以通过以下几种方法用非空数据“填充” NA值。用标量值替换NaN以下程序显示了如何将“ NaN”替换为“ 0”。importpandasaspdimportnumpyasnpdfpd.DataFrame(np.random.randn(3,3),index[a,c,e],columns[one,two,three])dfdf.reindex([a,b,c])printdfprint(NaN replaced with 0:)printdf.fillna(0)其输出如下-one two threea -0.576991 -0.741695 0.553172b NaN NaN NaNc 0.744328 -1.735166 1.749580NaN replaced with 0:one two threea -0.576991 -0.741695 0.553172b 0.000000 0.000000 0.000000c 0.744328 -1.735166 1.749580在这里我们用零值填充相反我们还可以填充其他任何值。向前和向后填充NA使用“重新索引”一章中讨论的填充概念我们将填充缺少的值。方法行动填充/填充填充方法前进填充/回填向后填充方法例importpandasaspdimportnumpyasnpdfpd.DataFrame(np.random.randn(5,3),index[a,c,e,f,h],columns[one,two,three])dfdf.reindex([a,b,c,d,e,f,g,h])printdf.fillna(methodpad)其输出如下-one two threea 0.077988 0.476149 0.965836b 0.077988 0.476149 0.965836c -0.390208 -0.551605 -2.301950d -0.390208 -0.551605 -2.301950e -2.000303 -0.788201 1.510072f -0.930230 -0.670473 1.146615g -0.930230 -0.670473 1.146615h 0.085100 0.532791 0.887415删除缺失值如果只想排除缺失值则将dropna函数与axis参数一起使用。默认情况下axis 0即沿着行这意味着如果一行中的任何值为NA那么将排除整个行。例importpandasaspdimportnumpyasnpdfpd.DataFrame(np.random.randn(5,3),index[a,c,e,f,h],columns[one,two,three])dfdf.reindex([a,b,c,d,e,f,g,h])printdf.dropna()其输出如下-one two threea 0.077988 0.476149 0.965836c -0.390208 -0.551605 -2.301950e -2.000303 -0.788201 1.510072f -0.930230 -0.670473 1.146615h 0.085100 0.532791 0.887415替换缺少的(或)通用值很多时候我们必须用某个特定值替换一个通用值。我们可以通过应用replace方法来实现。用标量值替换NA是fillna()函数的等效行为。例importpandasaspdimportnumpyasnpdfpd.DataFrame({one:[10,20,30,40,50,2000],two:[1000,0,30,40,50,60]})printdf.replace({1000:10,2000:60})其输出如下-one two0 10 101 20 02 30 303 40 404 50 505 60 60