数据转换指的是对数据的过滤、清理以及其他的转换操作。
移除重复数据
DataFrame里经常会出现重复行,DataFrame提供一个duplicated()方法检测各行是否重复,另一个drop_duplicates()方法用于丢弃重复行:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-0.png)
duplicated()和drop_duplicates()方法默认判断全部列,如果不想这样,传入列的集合作为参数可以指定按列判断,例如:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-1.png)
duplicated()和drop_duplicates()方法默认保留第一个出现的值,传入take_last=True保留最后一个值:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-2.png)
利用映射进行数据转换
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-3.png)
使用函数也能达到同样的效果:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-4.png)
替换值
replace()方法用于替换:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-4-5.png)
一次替换多个值:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-5.png)
对不同的值进行不同的替换:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-6.png)
DataFrame重命名轴索引
重命名列:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-7.png)
重命名索引:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-8.png)
将数据划分成不同的组:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-9.png)
检测和过滤异常值
假设你有一组数据:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-11.png)
找出绝对值大于2的值:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-12.png)
找出绝对值大于2的行:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-13.png)
将异常值设置为0:
![](https://images.cnblogs.com/cnblogs_com/sirkevin/867429/o_ch07-b2-14.png)