首先,数据加载

pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,期中read_csv和read_table这两个使用最多。

1、删除重复元素

使用duplicated()函数检测重复的行,返回元素为布尔类型的Series对象,每个元素对应一行,如果该行不是第一次出现,则元素为True。

- keep参数:指定保留哪一重复的行数据
- True 重复的行
  • 创建具有重复元素行的DataFrame
from pandas import Series,DataFrame
import numpy as np
import pandas as pd #创建一个df
np.random.seed(10)
df = DataFrame(data=np.random.randint(0,100,size=(3,5)),index=['A','B','C'],columns=['a','b','c','d','e'])
df
# a b c d e
A 9 15 64 28 89
B 93 29 8 73 0
C 40 36 16 11 54 df.loc['B'] = ['22','22','22','22','22']
df.loc['C'] = ['22','22','22','22','22']
df
# a b c d e
A 9 15 64 28 89
B 22 22 22 22 22
C 22 22 22 22 22
  • 使用duplicated查看所有重复元素行

使用drop_duplicates()函数删除重复的行

  • drop_duplicates(keep='first/last'/False)

2. 映射:指定替换

1) replace()函数:替换元素

 

使用replace()函数,对values进行映射操作

Series替换操作

  • 单值替换

    • 普通替换
    • 字典替换(推荐)
  • 多值替换
    • 列表替换
    • 字典替换(推荐)
  • 参数
    • to_replace:被替换的元素

单值普通替换

eplace参数说明:

  • method:对指定的值使用相邻的值填充替换
  • limit:设定填充次数

DataFrame替换操作

  • 单值替换

    • 普通替换: 替换所有符合要求的元素:to_replace=15,value='e'
    • 按列指定单值替换: to_replace={列标签:替换值} value='value'
  • 多值替换

    • 列表替换: to_replace=[] value=[]
    • 字典替换(推荐) to_replace={to_replace:value,to_replace:value}

2) map()函数:新建一列 , map函数并不是df的方法,而是series的方法

  • map是Series的一个函数
  • map()可以映射新一列数据
  • map()中可以使用lambd表达式
  • map()中可以使用方法,可以是自定义的方法

    eg:map({to_replace:value})

  • 注意 map()中不能使用sum之类的函数,for循环
 

注意:并不是任何形式的函数都可以作为map的参数。只有当一个函数具有一个参数且有返回值,那么该函数才可以作为map的参数。

3. 使用聚合操作对数据异常值检测和过滤

4. 排序

使用.take()函数排序

- take()函数接受一个索引列表,用数字表示,使得df根据列表中索引的顺序进行排序
- eg:df.take([1,3,4,2,5])

可以借助np.random.permutation()函数随机排序

随机抽样

当DataFrame规模足够大时,直接使用np.random.permutation(x)函数,就配合take()函数实现随机抽样

5. 数据分类处理

数据聚合是数据处理的最后一步,通常是要使每一个数组生成一个单一的数值。

数据分类处理:

  • 分组:先把数据分为几组
  • 用函数处理:为不同组的数据应用不同的函数以转换数据
  • 合并:把不同组得到的结果合并起来

数据分类处理的核心:

 - groupby()函数
- groups属性查看分组情况
- eg: df.groupby(by='item').groups

分组

最新文章

  1. Kooboo CMS - @Html.FrontHtml().HtmlTitle() 详解
  2. [IOS8兼容性]IOS8上收不到通知
  3. gulp 使用介绍
  4. ABP框架详解(四)Feature
  5. 移动h5开发资源整理
  6. static方法中为什么使用的都是静态变量
  7. android定时更新文件
  8. WebService 出现因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。
  9. js定时器window.setTimeout和setInterval
  10. yii2源码学习笔记(十)
  11. 手动替换GCC版本
  12. C语言多维数组的地址
  13. BytesWritable 存储问题
  14. PHP count() 函数
  15. [转载] 使用Redis的Java客户端Jedis
  16. MySQL 存储过程的简单使用
  17. 图像处理------颜色梯度变化 (Color Gradient)
  18. ajax 跨域 springboot
  19. background: inherit制作倒影、单行居中两行居左超过两行省略
  20. Linux给tomcat指定jdk

热门文章

  1. 【专】linux nameserver导致的故障
  2. python初级(302) 5 列表
  3. shell基础知识5-函数
  4. [ kvm ] 三种基础网络模型创建及分析
  5. makefile那些事儿
  6. mysql:获取某个表的所有字段
  7. png8和png24的根本区别
  8. WOS免费查的办法
  9. Datalogic 雕刻机
  10. Java 注解基本原理