‫好吧, 让我们来填补一些缺失的值, 好吗？
‫我们在这里为所有缺失的值做一个小标题｡
‫真漂亮｡
‫我们这里有一些缺失的值｡
‫所以我们要做的, 我想我们会先做数字缺失值｡
‫所以我们把它放在这里｡
‫所以另一个小标题, 我们会说, 哦, 让我们把它改成第二个,
‫因为我喜欢它的美感, 我们会先填充缺失的数值｡
‫好极了｡
‫现在, 我们如何检查哪些列是数字的, 哪些列不是数字的？
‫所以我们可以做什么｡
‫请记住, 是字符串日期类型｡
‫我们以前做过｡
‫我们在这里循环了数据帧｡
‫我们可以按下shift键｡
‫它在哪里？
‫字符串D型也是如此｡
‫你可能已经猜到了, 还有一个｡
‫也有数字数据类型｡
‫是这里吗？
‫不, 不, 不
‫我们走的话可能会在这里｡
‫这里是数字｡
‫我们走吧｡
‫检查所提供的数组或d类型是否为numeric d倍, 因为我们要填充numeric数据｡
‫我们要找出哪些列是数字列｡
‫让我们循环遍历模板项中的四个标签内容｡
‫因此, 我们将循环遍历列名以及每列包含的内容｡
‫我们将使用API点类型｡
‫DOT是数字数据｡
‫这有道理吗？
‫我们需要把什么放在这里, 如果内容是的话｡
‫如果列中的内容是数字, 我们希望打印出标签｡
‫这将是列的名称｡
‫好极了｡
‫让我们来看看其中的一个｡
‫我们在这里做了这些, 所以我们知道它们是数字的｡
‫不过, 让我们来看看有趣的模型I｡ D ... D ...
‫好极了｡
‫所以他要做我的模特｡ D. 或者实际上我们可以检查它是什么｡
‫型号ID标识您的唯一机器型号EFI型号描述｡
‫真漂亮｡
‫好的, 这些是我们的数字类型｡
‫现在我们要做的是找出其中哪些列缺少值,
‫现在我们要更关注, 我们要用某种值检查来填充缺少的数值列, 以检查哪些数值列包含空值｡
‫现在, 我们该怎么做呢？
‫好, 首先, 让我们从四个标签内容开始｡
‫我们只写我们在DF临时项目之前所做的事情, 现在我们想去｡
‫如果PDB API类型为DOT, 则为数字｡
‫我试着做标签, 但它是太多的选择｡
‫内容数值类型
‫好极了｡
‫然后我们可能需要做的是检查熊猫中是否有一个特性或功能, 叫做null｡
‫所以如果我们去PD是空的｡
‫熊猫是不行的｡
‫我们走吧｡
‫所以这会检测到一个数组类对象的缺失值｡
‫所以我们可以通过熊猫来做到这一点是空内容｡
‫这就是我们想要的｡
‫所以我们在这里做另一个if语句｡
‫所以PD为空｡
‫所以这是要去｡
‫整列中的内容（即列）中是否存在空值？
‫是否存在空值？
‫但我们需要确保这是一个完整的总和｡
‫所以如果有空值｡
‫如果这个值大于零, 我们就打印标签｡
‫这将告诉我们哪些列没有值｡
‫好吧, 我会的
‫现在我们知道了哪些列是没有值的数字列, 我们可以｡
‫把它们装满东西｡
‫所以我们要做的就是用中值来填充数字行｡
‫嗯嗯嗯
‫那我们就这么做吧
‫我们可以拿走这个｡
‫我们把这个抄下来｡
‫好了, 我们要把中值填入数字行｡
‫好极了｡
‫但我们还有一件事要做｡
‫好吧, 你不一定要做, 但我们还是要做｡
‫我会先把它写出来, 因为我们要添加一个二进制列, 它告诉我们数据是否丢失了, 注释有点长,
‫但这没关系｡
‫你觉得我们为什么要这么做？
‫我会让你在我们做的时候考虑一下, 我们会在这里寻找平等｡
‫PD现在满意了｡
‫好极了｡
‫然后我们要做的是用medium DF temp label equals content来填充缺失的数值｡
‫他们会在一个内容点中填充｡
‫谁啊？
‫我们只是在以前所做的基础上进行了构建, 但在按shift和enter之前, 我们在这里添加了两个新步骤｡
‫在这件事上, 我们违反了我们的规则｡
‫如果F和跑得比代码快, 我想让你想想为什么我们要把这个列放在这里｡
‫你可能会问我们, 为什么我们要用中位数来填充？
‫为什么不是主要的？
‫我们在这里加这一列的原因是因为如果我们用中位数来填充所有缺失的数据, 那么缺失的值可能是有原因的｡
‫我们会保留这些信息｡
‫通过添加一个列来说明变量缺失的事实, 如果变量缺失或未缺失, 则为true或false｡
‫也就是说, 如果我们找到一行缺少拍卖人ID值, 然后我们用拍卖想法列的中值填充它,
‫那么在数据帧的最后会有一列表示为真, 基本上是0或1, 这告诉我们,
‫嘿, 我们填充了拍卖人ID行,
‫但最初该行或此行缺少该值｡
‫我们会保留这些数据｡
‫我们保留的信息是, 在数据集中, 特定样本缺少拍卖商ID｡
‫所以我们把这些信息保留在那里, 然后我们用中值填充它｡
‫你可能会问为什么是中位数, 对吧？
‫为什么不是这个意思？
‫这里的问题是, 因为中位数比平均值更稳健.
‫你可能会想, 中值比均值更稳健是什么意思？
‫问题是, 当你使用平均值时, 当我们有很多不同的值时,
‫我们有412,000个值, 很多不同的值中的主值对离群值非常敏感｡
‫让我用一个粗略的例子来演示一下｡
‫所以证明中值比主值更稳健｡
‫我们刚刚运行了这个单元｡
‫我们马上就来看看发生了什么｡
‫我只想给予你们一个例子来说明为什么我们可能会使用中位数｡
‫你可能在搜索这个去y使用中位数超过主要｡
‫那可能是某种延伸｡
‫你可以在那里做一些研究, 但我们在这里, 十等于NP的下降｡
‫这是要做什么｡
‫我们要创建一个长度为1000､ 值为100的数组｡
‫假设有1000人｡
‫为什么我们叫它10？
‫所以是100｡
‫几百个｡
‫有一千个人每人有100美元, 然后我们会用成百上千亿美元来制造一个｡
‫比如说, 在这一千人中, 比尔·盖茨刚刚走进来, 他口袋里有10亿美元｡
‫所以我们不出10｡
‫我们要几百个｡
‫所以有一千个人拿着100美元｡
‫但现在比尔·盖茨走了进来, 他有10亿美元｡
‫那是九个零
‫我的天啊｡
‫好多零啊｡
‫一, 二, 三, 一, 二, 三
‫干得漂亮｡
‫好吧, 我会的
‫所以我们要做的是, 先升到主位百位数, 然后清空主位千亿位数,
‫然后得到空的中间位百位数, 然后再进入中间位千亿位数.
‫所以我们要做的就是取平均值, 再取这些的平均值和中位数.
‫每个的中位数｡
‫让我们看看｡
‫哇哦｡
‫明白我的意思了吧？
‫在我们这里列阵？
‫几百个｡
‫让我们来看看吧｡
‫这只是100个例子中的一千个｡
‫最主要的是100｡
‫有道理｡
‫中位数也是100｡
‫但是当我们把10亿加到最后的时候应该就在这里的某个地方｡
‫也可能不是｡
‫它是以千亿计的｡
‫现在, 我们有一个10亿的例子在最后是正确的｡
‫看看这对我们的平均数有多大影响｡
‫这是一个极端的例子, 对吧？
‫我们用的是十亿对一百｡
‫所以我们这里有几个数量级｡
‫看看它和中位数有多大的差别｡
‫以其最纯粹的形式｡
‫这就是为什么我们要用中位数｡
‫所以你可能会在你的研究中遇到为什么要使用媒体｡
‫但最主要的原因是, 是因为中值对离群值更稳健｡
‫但是, 在讨论了这些内容之后, 让我们来看看我们刚刚做了什么｡
‫我们刚才怎么处理这个的？
‫为了解决这个问题, 我们现在要做的就是检查是否有空数值｡
‫我们以前是怎么做到的？
‫好吧, 我们做了完整的标签内容和DF模板项目, 这就是我们所追求的｡
‫如果PD点, AP点是准时的, 那就是我在这里超前了｡
‫数值D型内容｡
‫好极了｡
‫如果PD为空内容, 则打印标签｡
‫因此, 这应该会告诉我们, 是否仍有任何数值或数值列包含空值｡
‫它应该打印出这些列名｡
‫它什么也不打印｡
‫原因是因为我们刚刚填充了内容｡
‫与中位数一起缺失的是｡
‫现在, 让我们检查一下我们的二进制列做了什么｡
‫好吧, 我会的
‫查查看｡
‫所以如果成功了, 我们就应该这么做｡
‫我们到上面去｡
‫缺少多少个拍卖人ID值？
‫我们能查出来吗？
‫从我们的前一个｡
‫拍卖人ID
‫好吧, 我们应该有｡
‫我们填充false的事实应该是总行数减去这个｡
‫所以true应该是二进制列的这个值｡
‫对不对？
‫因为它没有丢失｡
‫我们来看看这里｡
‫哦, 不｡
‫是的｡
‫应该是这个号码｡
‫因为这是他们看到的缺失值的数量｡
‫我们之前做过的, 我们填充了值, 我们检查了是否有缺失值｡
‫所以我们的二进制列应该对20,136个例子为真, 因为这是我们填充的例子数｡
‫让我们来看看｡
‫所以def下划线临时点, 因为我们已经创建了一个列拍卖｡
‫缺少ID｡
‫看这里, 我们有一个标签加号丢失｡
‫现在这应该是真的和假的｡
‫真漂亮｡
‫这意味着我们在拍卖商ID列中填充了20, 136个值｡
‫没有缺失列, 因为请记住, 我们只是用原始拍卖想法列的中值制作了此列｡
‫谁啊？
‫这已经很全面了, 但我们的数据帧中仍有一些缺失值｡
‫让我们看看还有什么？
‫我们填补了所有的数字缺失值, 但我们仍然有一些这些｡
‫嗯嗯嗯
‫我们还有不少｡
‫这些1都是零｡
‫它们没有任何缺失值, 所以这很好｡
‫他们已经准备好使用我们的机器学习模型了, 但是我们仍然需要在使用机器学习模型之前填充所有这些数据｡
‫让我们在下一个视频中进行演示｡