【发布时间】:2021-01-07 19:45:30
【问题描述】:
我有一个大型数据集。它缺少一些数据。数据集包含string(用于名称等列)和float(用于高度等列)类型的变量。此数据集中的某些行只是缺少数据的重复项(有时带有后缀编号)。我想要做的是删除空的重复项,留下有数据的重复项(有时同一个人可以有 2 行填充不同的数据,但这没关系,我想这样留下)。
要知道的重要一点是,虽然我将字符串类型列中的空值更改为np.nan,但在float 类型列中,空值由-99.0 表示。顺便说一句,将其设置为-1而不是-99.0会更好吗?还是没有区别?稍后我将在机器学习模型中使用它。
所以我的解决方案是:
- 编写一个函数,给定两个行索引,返回其中包含更多数据的行的索引,如果它们都填充了数据,则返回两者。
- 编写另一个函数,将遍历数据集并(使用前一个函数)比较重复项并删除空的。
但问题是,这对我来说需要大量的编码,而且这样做似乎不是很聪明的方法(我知道可能有更好的方法)。更不用说我在尝试按自己的方式做时遇到的可怕错误......
无论如何,你们知道更好的方法吗?甚至不一定是代码,只是一个如何更有效地完成它的想法。提前致谢。
【问题讨论】:
标签: python pandas duplicates dataset data-cleaning