文章目录

  • 1 背景
  • 2 常用工具
    • 2.1 numpy
    • 2.2 pandas

1 背景

  • 数据清洗是整个数据分析过程的第一步,也是整个数据分析项目中最耗费时间的一步;
  • 数据分析的过程决定了数据分析的准确性。

2 常用工具

2.1 numpy

numpy常用数据结构:numpy中重用的数据结构是ndarray格式使用array函数创建,语法格式为array(列表或元组)可以使用其他函数例如arange/linspace/zeros等创建import numpy as np
#使用array函数创建
arr1 = np.array([-7, 4, 4, 6, 89])type(arr1)numpy.ndarrayarr3 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])#嵌套列表arr3array([[ 1,  2,  3,  4],[ 5,  6,  7,  8],[ 9, 10, 11, 12]])np.arange(1,10,0.5)#使用arange函数array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])np.linspace(1,10,20,endpoint = True)#使用等差数列:起始值,终止值,元素个数array([ 1.        ,  1.47368421,  1.94736842,  2.42105263,  2.89473684,3.36842105,  3.84210526,  4.31578947,  4.78947368,  5.26315789,5.73684211,  6.21052632,  6.68421053,  7.15789474,  7.63157895,8.10526316,  8.57894737,  9.05263158,  9.52631579, 10.        ])(10-1)/190.47368421052631576np.zeros([4,5])#使用zeros函数array([[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.]])np.zeros(4)array([0., 0., 0., 0.])np.ones([2,3])#使用ones函数array([[1., 1., 1.],[1., 1., 1.]])arr3 + 1#每个元素都加1array([[ 2,  3,  4,  5],[ 6,  7,  8,  9],[10, 11, 12, 13]])arr3.ndim#数组维度2arr1.shape#数组形状(5,)#一维数组:5个元素arr3.shape(3, 4)#二维数组:3行4列arr3.size#一共有多少元素12arr3.dtype#元素类型dtype('int32')​
#使用元组
data2 = ((1.2,2.3,3,4,5.6),(4.5,6.7,34,3.6,5),(2.5,4.6,7.8,8.9,50))#嵌套元组data2((1.2, 2.3, 3, 4, 5.6), (4.5, 6.7, 34, 3.6, 5), (2.5, 4.6, 7.8, 8.9, 50))arr2 = np.array(data2)arr2array([[ 1.2,  2.3,  3. ,  4. ,  5.6],[ 4.5,  6.7, 34. ,  3.6,  5. ],[ 2.5,  4.6,  7.8,  8.9, 50. ]])arr2[0]#访问第一个array([1.2, 2.3, 3. , 4. , 5.6])arr2[0:3]array([[ 1.2,  2.3,  3. ,  4. ,  5.6],[ 4.5,  6.7, 34. ,  3.6,  5. ],[ 2.5,  4.6,  7.8,  8.9, 50. ]])arr2[1:3]array([[ 4.5,  6.7, 34. ,  3.6,  5. ],[ 2.5,  4.6,  7.8,  8.9, 50. ]])arr2[1,3]#第二行,第四列3.6arr2[1][3]#第二行,第四列3.6arr2[:,3]#第四列array([4. , 3.6, 8.9])arr2[:,1:3]#第二列到第三列array([[ 2.3,  3. ],[ 6.7, 34. ],[ 4.6,  7.8]])​
#排序
s = np.array([1,2,4,3,6,5,90,67,54,32,12,9,7])np.sort(s)#返回的是一个视图array([ 1,  2,  3,  4,  5,  6,  7,  9, 12, 32, 54, 67, 90])sarray([ 1,  2,  4,  3,  6,  5, 90, 67, 54, 32, 12,  9,  7])s = np.sort(s)sarray([ 1,  2,  3,  4,  5,  6,  7,  9, 12, 32, 54, 67, 90])sorted(s,reverse=True)[90, 67, 54, 32, 12, 9, 7, 6, 5, 4, 3, 2, 1]np.array(sorted(s,reverse=True))array([90, 67, 54, 32, 12,  9,  7,  6,  5,  4,  3,  2,  1])np.argsort(s)array([ 0,  1,  3,  2,  5,  4, 12, 11, 10,  9,  8,  7,  6], dtype=int64)sarray([ 1,  2,  4,  3,  6,  5, 90, 67, 54, 32, 12,  9,  7])#二维数组排序arr1 = np.array([[0,1,3,],[4,2,9],[4,5,9],[1,-3,4]])np.sort(arr1,axis = 0)#axis=0是沿着行的方向排序;axis=1是沿着列的方向排序array([[ 0, -3,  3],[ 1,  1,  4],[ 4,  2,  9],[ 4,  5,  9]])np.sort(arr1,axis = 1)#axis=0是沿着行的方向排序;axis=1是沿着列的方向排序array([[ 0,  1,  3],[ 2,  4,  9],[ 4,  5,  9],[-3,  1,  4]])​sarray([ 1,  2,  4,  3,  6,  5, 90, 67, 54, 32, 12,  9,  7])np.where(s>7,1,-1)#大于7返回1,否则返回-1array([-1, -1, -1, -1, -1, -1,  1,  1,  1,  1,  1,  1, -1])np.where(s>7,s,-1)array([-1, -1, -1, -1, -1, -1, 90, 67, 54, 32, 12,  9, -1])np.where(s>7,1,-4)array([-4, -4, -4, -4, -4, -4,  1,  1,  1,  1,  1,  1, -4])np.extract(s>7,s)#筛选出s>7的元素array([90, 67, 54, 32, 12,  9])​

2.2 pandas

#序列的创建(series)import pandas as pdseries1 = pd.Series([2.8,3.01,8.99,8.58,5.18])series10    2.80
1    3.01
2    8.99
3    8.58
4    5.18
dtype: float64type(series1)#序列pandas.core.series.Seriesseries2 = pd.Series([2.8,3.01,8.99,8.58,5.18],index=['a','b','c','d','e'],name='这是一个序列')series2a    2.80
b    3.01
c    8.99
d    8.58
e    5.18
Name: 这是一个序列, dtype: float64series3 = pd.Series({'北京':2.8,'上海':3.01,'广东':8.99,'江苏':9.73,'浙江':5.18})#用字典series3北京    2.80
上海    3.01
广东    8.99
江苏    9.73
浙江    5.18
dtype: float64series3[0:3]#左闭右开北京    2.80
上海    3.01
广东    8.99
dtype: float64series3['北京':'江苏']#左右都闭北京    2.80
上海    3.01
广东    8.99
江苏    9.73
dtype: float64series1.values#输入的是值array([2.8 , 3.01, 8.99, 8.58, 5.18])series3.index​Index(['北京', '上海', '广东', '江苏', '浙江'], dtype='object')series1.indexRangeIndex(start=0, stop=5, step=1)series1.dtypedtype('float64')dataframelist1 = [['张三',23,'男'],['李四',27,'女'],['王二',26,'女']]#使用嵌套列表df1 = pd.DataFrame(list1,columns=['姓名','年龄','性别'])df1.head(5)姓名    年龄  性别
0   张三  23  男
1   李四  27  女
2   王二  26  女df2 = pd.DataFrame({'姓名':['张三','李四','王二'],'年龄':[23,24,26],'性别':['男','女','女'],})#使用字典df2.head(5)姓名   年龄  性别
0   张三  23  男
1   李四  24  女
2   王二  26  女array1 = np.array([['张三',23,'男'],['李四',27,'女'],['王二',26,'女']])df3 = pd.DataFrame(array1,columns=['姓名','年龄','性别'],index=['a','b','c'])#使用数组df3姓名    年龄  性别
a   张三  23  男
b   李四  27  女
c   王二  26  女df3.valuesarray([['张三', '23', '男'],['李四', '27', '女'],['王二', '26', '女']], dtype=object)df3.indexIndex(['a', 'b', 'c'], dtype='object')df3.columnsIndex(['姓名', '年龄', '性别'], dtype='object')df3.columns.tolist()#转化成列表['姓名', '年龄', '性别']df3.ndim2series1.ndim1df2.shape(3, 3)series1.shape(5,)df3.size9df3.dtypes姓名    object
年龄    object
性别    object
dtype: objectdf2.dtypes姓名    object
年龄     int64
性别    object
dtype: object

series和dataframe常用方法如下:

方法名称 说明
values 返回对象所有元素的值
index 返回行索引
dtypes 返回类型
shape 返回对象数据形状
ndim 返回对象的维度
size 返回对象的个数
columns 返回列标签(只针对dataframe数据结构)

欢迎阅读数据清洗系列文章python数据清洗工具、方法、过程整理归纳

  • 一、数据清洗之常用工具——numpy,pandas
  • 二、数据清洗之文件读写——读取csv、Excel和MySQL数据
  • 三、数据清洗之数据表操作——数据筛选、增加删除、查找修改、数据整理和层次化索引
  • 四、数据清洗之数据转换——日期格式数据处理、高阶函数数据处理、字符串数据处理
  • 五、数据清洗之数据统计——数据分组运算、聚合函数使用、分组对象和apply函数、透视图与交叉表
  • 六、数据清洗之数据预处理(一)——重复值处理、缺失值处理
  • 七、数据清洗之数据预处理(二)——异常值处理、数据离散化处理
  • 八、总结

python数据清洗工具、方法、过程整理归纳(一、数据清洗之常用工具——numpy,pandas)相关推荐

  1. 《Python数据可视化编程实战》—— 1.2 安装matplotlib、Numpy和Scipy库

    本节书摘来异步社区<Python数据可视化编程实战>一书中的第1章,第1.2节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...

  2. 《Python数据可视化编程实战》—— 1.6 安装图像处理工具:Python图像库(PIL)...

    本节书摘来异步社区<Python数据可视化编程实战>一书中的第1章,第1.6节,作者:[爱尔兰]Igor Milovanović,更多章节内容可以访问云栖社区"异步社区" ...

  3. 整理了Kafka的一些常用工具,建议收藏备用!| 博文精选

    作者 | 犀牛饲养员 责编 | 徐威龙 封面付费下载于视觉中国 本文主要列举一些 Kafka 的常用工具,以及举了一些例子来帮助理解.有需要的小伙伴,可以 Mark 起来再看. 环境 以下的操作都是基 ...

  4. python optimize_Python的五大常用库——numpy,pandas,matplotlib等

    Numpy Numpy 是python科学计算的基础包,本书大部分内容都基于numpy以及构建于其上的库.其功能有: 快速高效的多维数组对象ndarray 用于对数组执行元素级计算以及直接对数组执行数 ...

  5. pandas是基于什么的python库_Python的五大常用库——numpy,pandas,matplotlib等

    Numpy Numpy 是python科学计算的基础包,本书大部分内容都基于numpy以及构建于其上的库.其功能有:快速高效的多维数组对象ndarray 用于对数组执行元素级计算以及直接对数组执行数字 ...

  6. 直方图尖峰python_直方图、密度图、散点图,python数据可视化方法,你要的都在这里...

    直方图和密度图 直方图 直方图(histogram)是一种可以对值频率进行离散化显示的柱状图.数据点被拆分到离散的.间隔均匀的面元中,绘制的是各面元中数据点的数量. In [165]: data1=p ...

  7. Python 数据合并方法 —— Pandas concat() 详解

    详解concat 参数说明 concat说明 ignore_index 示例 Example Reference 参数说明 pandas.concat(objs, axis=0, join='oute ...

  8. 4种快速易用的Python数据可视化方法

    热力图.二维密度图.蜘蛛网图和树状图,这些可视化方法你都用过吗? 数据可视化是数据科学或机器学习项目中十分重要的一环.通常,你需要在项目初期进行探索性的数据分析(EDA),从而对数据有一定的了解,而且 ...

  9. 四种快速易用的Python数据可视化方法

    数据可视化是数据科学或机器学习项目中十分重要的一环.通常,你需要在项目初期进行探索性的数据分析(EDA),从而对数据有一定的了解,而且创建可视化确实可以使分析的任务更清晰.更容易理解,特别是对于大规模 ...

最新文章

  1. “三高”程序员谈:“三高”集群架构 哈哈哈!!!
  2. 【HDOJ】1754 I Hate It
  3. 鸿蒙系统2.0什么时候上线,华为官方:鸿蒙系统2.0上线,手机能否搭载鸿蒙操作系统?...
  4. js get请求_URL解析、HTTP请求以及浏览器和爬虫得到响应的区别
  5. php 回到顶部,jquery如何实现点击网页回到顶部效果?(图文+视频)
  6. asp.net 导出word excel 当前上下文中不存在名称“Encoding”报错问题
  7. 2021中国出口跨境电商发展研究报告
  8. SAP License:SAP MM中的几个概念
  9. packmol建模流程-计算
  10. 【CCCC】L2-013 红色警报 (25分),,并查集计算集合个数
  11. concurrenthashmap为什么是线程安全_为什么 StringBuilder 不是线程安全的?
  12. 学习Java的9张思维导图
  13. 自动化刷EOS资金盘(类Fomo3D)游戏
  14. 中央处理器cpu主要由什么组成?
  15. Gromacs 伞形采样
  16. 魔百盒CDN00001_移动魔百盒设置最佳DNS方法
  17. 机械学习:二维空间下支持向量机SVM基础学习
  18. 四月电商战 京东突围与苏宁国美当当再围剿
  19. 对话印奇:我们所坚持的不会改变,旷视跳出企业科研“周期律”
  20. 安卓linux病毒,如何清除linux病毒

热门文章

  1. Can not find table primary key in Class
  2. onblur和onclick冲突的解决方法
  3. python astype str_Python astype(np.float)函数使用方法解析
  4. 计算机日常应用有哪些,电脑有哪些常用使用技巧
  5. 使用Maven和WTP开发WEB项目。
  6. 【VUE】3、VUE-UI创建第一个VUE项目
  7. java解析五元组_抓包分析提取五元组
  8. 学习的答案:为终身学习者赋能
  9. word2vec、doc2vec的使用
  10. a5外包平台是怎么培养骗子的,a5骗子平台是怎么养成的