本节概要

- 数据类型

- 数据结构

- 数据的常用操作方法


数据类型

基础铺垫

定义

  • 我们搞数据时,首先要告诉Python我们的数据类型是什么

    • 数值型:直接写一个数字即可
    • 逻辑型:True,False(首字母大写)
    • 字符型:单引号、双引号、三引号

赋值

  • 用等号给变量贴标签

变量-赋值的对象是变量

  • 命名规则
  • 命名规则

逻辑型(Logical)

布尔值:只有两种取值(0和1,True和False)

运算规则:

运算符 注释 规则
& 一个为假,结果为假
一个为真,结果为真
not 非真为假,非假为真

数值型(Numeric)

实数

运算规则

  • 加、减、乘、除

字符型(Character)

如何定义字符串-单引号、双引号、三引号


数据结构

引言:为什么要将数据类型?
前面的逻辑型、数值型、字符型都是针对一个数据来讲的;
我们要研究现实问题时,数据往往是以集合的形式出现的

如何理解?

有关联的数据维度集合

  • 数据结构是一个理论性很强的知识点,但是这里我们不要纠结过多的原理,因为它真的很简单,可以这样理解,我们工作中大多EXCEL和SQL中有行和列的数据表格,都可以看作是数据结构的集合

  • 学python数据分析的朋友,一定要有SQL基础,我建议学Mysql,理由很简单,facebook、淘宝、京东、微博全都是用的mysql

Pandas中的两种数据结构

Series(系列)

定义

系列是用于存储一行或者一列的数据,以及与之相关的索引的集合

index 姓名
0 数据分析-jacky
1 李嘉诚
2 扎克伯格
  • 系列可以理解为Excel表格一列的数据,只是这一列是没有列名的,因为它只有一列,不需要列名。

  • 索引,类同于数据库,我们可以通过索引(index)对用的值,访问到数组(姓名)的值。

  • 在Pandas 中,默认索引都是从0开始的。

如何定义一个系列

  • 从pandas包中导入Series对象
from pandas import Series
  • 得到系列对象:使用Series对象的构造函数,把一个数组作为参数传入
x=Series(['a',True,1])

操作

  • 往一个定义好的数据中增加数据

  • 系列的append方法,只能增加系列,不能增加单个值

特别注意:

n=Series(['9'])#要加引号;
x.append(n)#只会返回到一个新的序列,并不会返回到变量x
x=x.append(n)#特别关键的一步,这样才真正的给x变量增加了数据

x.drop(0)#根据索引删除
x.drop(x.index[3])#根据位置删除
x['9'!=x.values]#使用保留的方法,把不是要删除的数据保留下来

'9'in x.values #判断9这个值是否存在
x[0:2]  #切片
x[[1,2,0]]#这个比较重要,定位获取,用于随机抽样

DataFrame(数据框)

定义

数据框是用来存储多行或多列的数据集合

index age name
0 19 Mr.liu
1 30 Jacky
2 42 Andy
  • 可以理解为Excel中的表格

如何定义一个系列

  • 首先生成一个数据框,导入pandas中的数据框类
from pandas import DataFrame
  • 使用DataFrame对象的构造函数,输入一个字典来构造数据框,这个数据框的写法,就是以列名作为Key,列数据以数组的方式在后面输入即可。
df=DataFrame(data={'age':[19,30,42],'name':['Mr.liu','Jacky','Andy']},index=['0','1','2']
)

  • 做自定义索引与系统是形同的

操作

  • 通过loc属性
df.loc[len(df)]=[100,'zhuyuanlu']#增加行
df['newColumn']=[111,222,333]

  • drop属性,根据axis轴参数,来确定是删除行,还是删除列,axis=0是行,axis=1是列
df.drop('firs',axis=0) #删除行
df.drop('age',axis=1) #删除列

  • 修改列名,查看columns属性,对columns属性重新赋值

  • 修改行索引,index属性

对于数据分析来说,增删改查,一定是查最重要

df['age'] #按列访问,访问一列
df[['age','name']]#按列访问,访问多列
df[0:1] #按行访问,切片
df.loc[['firs','seco']]#按行索引
df.iloc[1:2,1:2]#按行列号访问
df.at['their','age']


向量化(数组)运算

pandas是以系列和数据框为基本运算对象,讲到这,有朋友会问了,jacky,我记得你讲python基础时说过,list 容器也有“类似于”pandas或numpy中数组的功能,那为什么我们还要学panda和numpy呢?
拿numpy举例来说,numpy中基本的运算对象为数组,numpy数组在数值运算方面的效率要远远,远远优于Python提供的list容易,并且使用numpy可以在代码中省区很多的循环语句,因此其代码比等价的Python代码更为简洁。
更重要的,或说更加实操的区别是:两者的输出结果在形式上会有明显的区别,numpysum()函数的输出不包含逗号,但是list容器一定是包含括号的,这点在数据可视化时会有明显的不同。

代码中尽可能避免显式for循环
过早的优化是魔鬼
向量化运算非常优美和高效,所以我们尽量使用向量化计算


基础课程回顾:

range函数用法

  • range函数的参数:
#第一个参数是for循环变量开始的值,第二个是参数是上限,但不含它,也就是循环停止的数据
for i in range(12,16):print(i)
  • 以上代码显示:12 13 14 15
#range()函数也可以有第三个参数。前两个参数分别是起始值和终止值,第三个参数是“步长”。步长是每次迭代后循环变量增加的值。
for i range(0,10,2):print(i)
  • 以上代码显示:0 2 4 6 8

用range函数生成的等差数列只能是整数,用 for 循环才能将它输出来,只能用于遍历
接下来我们用numpy包中arrange方法,该方法生成的就是一个数组对象,而且可以使用小数进行生成。

四则运算

函数

  • 使用numpy的乘方函数power,3次方

比较运算

矩阵运算

是一种特殊的向量运算,它的运算规则可以结合线性代数看一下

numpy.dot(r,r.T)
sum(r*r)

数据框的向量化运算

#生成一个随机数的数据框
from pandas import DataFrame
df=DataFrame({'data1':numpy.random.randn(5),'data2':numpy.random.randn(5)
})
#找出每一列的最小值
df.apply(min)

  • 按列最小值进行遍历,默认axis=0
#找出每行最小值
df.apply(min,axis=1)

第一章:Python数据分析前的基础铺垫相关推荐

  1. 大数据技术技能分析大赛——第一章 python数据分析概述

    目标:掌握python,进行数据处理.统计分析.回归建模和数据可视化. 教材:<大数据分析务实初级教程(python)## 标题> 第一章 python数据分析概述 1.数据分析概述 1 ...

  2. python数据分析的应用场景_第一章Python数据分析概述

    第4节:重要的Python数据分析类库 1.NumPy(Numerical Python)是Python科学计算的基础包 提供了快速高效的多维数组对象ndarray 提供了对数组执行元素级计算以及直接 ...

  3. 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...

    第一章 Python基础 第三节 列表简介 列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中的元素包括在方括号([])中,每个元素之间用逗号分割.列表是可变的数据类型, ...

  4. 廖雪峰python教程——第一章 Python基础

    第一章 Python基础 一.数据类型和变量 Python的数据类型包括整数.浮点数.字符串.布尔值.空值.变量.常量等.其中整数可以表示任意大小的整数:空值是Python里一个特殊的值,用None表 ...

  5. 第一章 Python基础 ——一起搬砖打地基

    目录 前言 第一章 Python基础 1.表达式 2.整型.浮点型和字符串数据类型 3.字符串的连接和复制 字符串的连接--"+"操作符 字符串的复制--" * &quo ...

  6. Python入门——第一章 python编程基础

    Python入门 文章目录 Python入门 第一章 python编程基础 1.1 基本输入输出 1.1.1使用print()函数进行简单输出 chr()函数 print()输出到指定文件 print ...

  7. 第一章 python筑基

    python 第一章 python基础 print函数:输出变量或者对象的值.接下来我们会经常用到,再次不做赘述. 如果对于该函数不了解的,可以通过help(print)和help(print())查 ...

  8. [转载] 《python程序设计应用教程》第一章 python语言概述

    参考链接: Python语言的优势和应用 第一章 python语言概述 1.1 python语言简介 ① 众多的开源的科学计算软件包都提供了python的调用接口,例如:计算机视觉库OpenCV.三维 ...

  9. 粤教版高中信息技术必修一《数据与计算》第一章:python编程作ASCII编码excel表

    粤教版高中信息技术必修一<数据与计算>第一章 python编程作ASCII编码excel表 知识点: 1.循环语句 2.条件语句 3.格式化输出:format, f'{} 格式化  三个方 ...

  10. 第一章 Python Kivy 学习 -- Kivy介绍及环境安装

    系列文章目录 第一章 Python Kivy 学习 – Kivy介绍及环境安装 第二章 Python Kivy 学习 – Kivy项目开发原理(待编辑) 第三章 Python Kivy 学习 – Ki ...

最新文章

  1. 一切成功均源于长期的积累(转)
  2. 独家 | 使用TensorFlow 2创建自定义损失函数
  3. Jenkins +maven+tomcat自动构建部署(学习笔记三十六)
  4. JAVA中throw用法例子,Java Optional orElseThrow()用法及代码示例
  5. 1.8 ionic3入门——测滑菜单(side menu)中的界面跳转
  6. rsatool使用步骤图解_图解360系统重装大师如何使用
  7. hdu 1280用hash解决。。
  8. UnitTest in .NET(Part 5)
  9. MATLAB学习——变量、数组
  10. AC自动机(python)
  11. 速修复!VMware vCenter Server 所有版本受严重的 RCE 漏洞影响
  12. js 实现php md5加密,js实现md5加密插件代码分享
  13. macOS Monterey 12.0 Beta版 With Clover 5136 and OC 0.7.0 and PE 三EFI分区原版黑苹果镜像
  14. 金蝶K3 各种单据及各种控制功能表的关系
  15. 评价页面,随手写的评价简陋模板
  16. 调度算法学习_MIN-MIN及MAX-MIN算法
  17. python 切片器_Excel数据透视表应用之三切片器
  18. 微信公众号开发:获取openId和用户信息(完整版)
  19. windows 平台shellcode编写
  20. SpringBoot使用JRebel热部署

热门文章

  1. Halcon仿射变换图片(旋转、缩放、平移)
  2. win安装android系统,电脑可以装安卓系统啦!windows 安卓双系统安装详细教程
  3. 示例正则表达式验证6位数字密码
  4. java 文字串叠字检查_Java 正则表达式详细实例解析
  5. Racket GUI,使用message%显示图片
  6. U盘重装win10系统专业版——启动盘制作
  7. 风变python怎么样_风变编程python到底怎么样?可以自学吗?
  8. 又一名程序员猝死,送给996的程序员一份身体健康指南电子书!
  9. 杭州电子科技大学计算机调剂,2019年杭州电子科技大学硕士研究生调剂公告
  10. 杭州电子科技大学java刷题_杭州电子科技大学的OJ