移除重复数据
DataFrame中出现重复行有多种原因。下面一一讲解,先举个例子。
=====================================
DataFrame的duplicated方法返回一个布尔型Series,表示各行是否是重复行(前面出现过的行)
=====================================
还有一个与此相关的drop_duplicates方法,它会返回一个DataFrame,重复的数组会标为False
=====================================
这两个方法默认会判断全部列,可以指定部分列进行重复项判断。有一列值,且只希望根据k1列过滤重复项
=====================================
duplicated和drop_duplicates默认保留的是第一个出现的值组合。传入keep='last’则保留最后一个
利用函数或映射进行数据转换
=====================================
添加一列表示该肉类食物来源的动物类型。
先编写一个不同肉类到 动物的映射。
=====================================
Series的map方法可以接受一个函数或含有映射关系的字典型对象,即有些肉类的首字母大写了,而另一些则没有。需要使用Series的str.lower方法,将各个值转换为小写
=====================================
可以传入一个能够完成全部这些工作的函数
使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。
替换值
利用fillna方法填充缺失数据可以看做值替换的一种特殊情况。
map 可用于修改对象的数据子集
而replace则提供了一种实现该功能的更简单、更灵活的方式。
=====================================
-999这个值可能是一个表示缺失数据的标记值。要将其替换为pandas能够理解的NA值,利用replace来产生一个新的Series(除非传入inplace=True)
=====================================
想一次性替换多个值,可以传入一个由待替换值组成的列表以及一个替换值
=====================================
要让每个值有不同的替换值,可以传递一个替换列表
=====================================
传入的参数也可以是字典
注:data.replace方法与data.str.replace不同,后者做的是字符串的元素级替换。
++++++++++++++++++++++++++++++++++++