Python数据分析(基础)

 

 

目录:python

Python基础:数组

  • Python基本用法:控制语句、函数、文件读写等
  • Python基本数据结构:字典、集合等

Numpy:简述数据结构

Pandas:简述app

 

 


1、 Python基础:函数

1.1 文件读取工具

1).打开文件
2).操做数据(读、写)
3).关闭文件 **编码

打开文件:spa

fp = open(path, 打开方式, encoding=, errors='Ignore')翻译

操做数据:对象

打开方式:

'r':表示只读字符(readonly)
#'r+':在只读的功能下,在追加一个写的功能

'w':表示只写字符(readwrite),第一次写完,若是没有关闭文件,继续写,那么会将本来的内容覆盖
#'w+':在只写的功能下,在追加一个读的功能

'a':表示追加内容
#'a+':在保留追加内容的同时,新增了一个读的功能

'rb':表示只读字节(二进制数据)
'wb':表示只写字节(二进制数据)

encoding:

编码集若是不显示定义,对应:gbk

errors:
若是不写,默认是报错(编解码不一致)
咱们也能够定义为ignore,这样就不会报错了,可是会出现乱码

 读取文件中的数据:

fp = open(path, ‘r’)
content = fp.read() #读取所有内容
content = fp.read(num) #读取num个字节数
content = fp.readline() #读取一行数据
content = fp.readlines() #读取全部行,以一个列表的形式返回
print(content) #打印读取到的内容

写入数据到文件中:

fw = open(path, 'w')
fw.write(str1) #将变量str1中的内容写入到path对应的文件中(覆盖)

【注意】写文件,若是文件不存在,先建立文件,再写入内容;若是存在了,将之前的内容覆盖

fw = open(path, 'a')
fw.write(str1) #将变量str1中的内容写入到path对应的文件中(追加)

关闭文件:

fp.close() #关闭文件(释放资源)


 

2.二、控制语句

1).判断结构

分类:三种格式

①.
if 条件表达式:
语句块

②.
if 条件表达式:
语句块1
else:
语句块2

③.
if 条件表达式1:
语句块1
elif 条件表达式2:
语句块2
elif 条件表达式3:
语句块3
elif 条件表达式4:
语句块4
else:
语句块n

1.循环结构:

1).while循环:

四要素

①.初始化条件 能够认为是一个起始值(起点位置),代码体现就是定义一个变量,只会执行一次

②.循环条件 获得的确定是一个布尔值,True --> 循环继续,False --> 循环结束 通常循环条件中都会用到
初始化条件的变量

③.迭代条件 不断的去改变变量的值

④.循环体 须要重复执行的业务逻辑代码

对于②、③、④而言可能都会被执行屡次

格式:

while ②:


执行流程:① -> ② -> ④ -> ③ -> ② -> ④ -> ③ -> ② -> 循环结束

False

2).break和continue的使用

对于break而言: 若是在循环中执行到break关键字,那么就会马上结束当前循环
对于continue而言: 若是在循环中执行到continue关键字,那么就会马上结束当次循环,进行下一次循环

3).无限循环(死循环)

解释:循环操做若是循环条件一直为True,整个循环永远结束不了

死循环极其消耗系统资源,可是配合某些关键字(break),那么这个无限循环仍是有意义的

对于while的死循环格式以下:

while True:

 

4).else的语法:

在循环结构的最后能够配合else一块儿使用,
若是整个循环是正常结束,程序必定会执行else中的代码,
若是整个循环是经过break结束的,程序就不会执行else中的代码

5).forin循环:

1).定义格式一:

for x in seq:

循环体

执行流程:

从seq容器中依次去除它内部的元素给到x,后续的循环体中有可能会用到x中临时存储的值,
等到seq容器中的元素所有被遍历完成了,整个循环也就结束了!

①.能够遍历的容器有str、list、tuple、set、dict
②.若是是遍历字典,只在for关键字后面定义一个变量的话,只能获取到的是整个字典的键,
咱们通常定义两个变量(k, v)来实现键和值的双向获取

2).range()函数

range()函数一旦执行完毕,会返回给我一个序列(容器)

格式:range(start, end, step)

举例:

range(10): 获得[0, 10)
range(0, 6): 获得[0, 6)
range(0, 10, 2) 获得[0, 2, 4, 6, 8]


3).定义格式2:

for x in range(num):
循环体

执行过程:

每次都会从num中取出一个整数值给到x,直到range容器中的全部值所有被遍历执行过了,循环结束!

break和continue关键字一样能够在forin中被使用,做用和在while中是同样的

else也能够被配合使用

4).嵌套循环

格式:

while中能够定义forin ①
while中也能够定义while ②
forin中能够定义forin ③
forin中也能够定义while ④


最为经常使用的两层循环的格式是: ③


结论:

1).外层循环执行m次,内层循环执行n次,程序一共执行了m * n 次循环
2).外层循环走一次,内层循环所有执行一边
3).外层循环中定义的变量,不要和内层循环中定义的变量重名


7).列表生成式

语法糖:

是一种既简洁快捷的表达式。这种式子能够给python的解释器翻译成为业务逻辑比较复杂的代码
如:

三元运算符:简化if-else这种分支结构而出现的

列表生成式:它能够速度,效率的帮助咱们生成一个新的列表

格式:

[expr for x in iterable(可迭代对象:list、tuple、set...)]

8).类型转换函数:

int():
将字符串类型的整数值转换为一个int值

float():

将字符串类型的整数值,浮点值转换为一个float值

bool():

None:False
空字符串:False
空列表: False
空元祖: False
空集合: False
空字典: False
整数的0表示False,其他都是True

str():

能够将整数、浮点数、布尔值、列表、元祖、集合、字典、None转换成str

list():

能够将元祖、集合、字符串转换成列表
能够将字典的键放入到一个列表中

tuple():

能够将列表、集合、字符串转换成元祖
能够将字典的键放入到一个元祖中

set():
能够将元祖、字典、字符串转换成集合,可是会顺便去重


dict():
能够将相似如下的代码转换为字典:

lt1 = [['name', 'zhangsan'],('age', 23),{123, '123'}]

print(dict(lt1))


9).ascii码

在python中有两个内置函数:

chr():将编码值(整数),转换为对应的字符
ord():将字符,转换为对应的编码值

 


 

三、函数

定义:将一段功能逻辑代码,封装到一块区域中,这块区域有本身单独的名字(方法名),

以后若是想要执行次功能,只要经过方法名调用,就能够实现了

函数是一种功能、行为,一个方法只表示一个功能。

函数的定义格式:

def 函数名(形参列表):

方法体

方法的命名:

方法名也须要知足标识符的规则和规范


函数的返回值:
有返回值:
须要使用return关键字将方法最终执行之后的结果给到方法的调用处
在同一做用范围内的return关键字后面不要去定义其它的代码,由于永远不可能被执行到
没有返回值:
不须要使用return关键字,方法执行完就over
能够定义return关键字,可是return后面什么内容都不能写,此时的return仅仅意味着方法结束

方法的参数:

方法的形参:

定义在def方法的小括号内的标识符,能够有[0, +无穷]多个

方法的实参:

方法被调用时,显示的传入的具体数据,实参给到形参的过程,
实参是真正在方法体内用到的。

1).一旦定义了有参数的函数,在调用的时候,就必须显示的传递参数(实参),个位和位置都是须要咱们注意的
2).函数的内部还能够调用别的函数
3).python中能够定义默认参数,
若是在调用函数时,不传递任何的参数,或者少传,没有接受到的所有使用默认值

4).python中的函数重载现象,定义在一个.py文件中的两个函数,名字相同,
若是形参列表相同:那么执行调用的是后者的内容
若是形参列表不相同:须要注意,只能调用第二个方法,若是调用第一个,直接报错!


内部函数:

定义在某个函数的内部,它能够获取到外部函数的变量,
可是不能修改它,若是想要修改外部函数的变量,须要显示的定义nonlocal关键字:nonlocal 变量名


全局变量:

直接定义在.py文件中的变量(函数的外部),能够给任何一个函数所使用,
若是想要在某个函数中去修改全局变量的值,咱们能够先定义global关键字:global 变量名

局部变量:

直接定义在函数的内部,只能被本身的函数所使用,

 

列表函数:

append:
追加一个元素到列表的末尾,固然也能够追加一个列表,可是这个列表会充当一个末尾元素

extend:
追加一个元素到列表的末尾,固然也能够追加一个列表,可是这个列表中的每个元素
都会依次追加到原列表最后

count:

计算列表中某相同元素的个数

index:

返回某个元素在列表中第一次出现的下标位置

insert:

插入某个元素到列表的某个位置,原列表的元素依次向后移

pop:

弹出某个索引位置上的元素,默认弹出末尾元素,一次一个

remove:

删除列表中的某个匹配的元素,一个只能删除一个,最早匹配到的先删除

clear:

清空列表元素

reverse:

对列表进行反转

copy:

拷贝列表中的全部元素,返回一个新的列表(与旧的原来一致) ---》 深拷贝

sort:

将列表中的元素进行排序,默认升序排列 --》 参数:reverse=False
若是将参数:reverse=True 就能够进行降序排列了


字典函数:

items:
返回key-value对集

keys:

返回键集

values:

返回值集

get:

经过键找值

dict1.update(dict2):

将dict2中的键值对复制给到dict1,若是有重复的键,那就将dict2中的键对应的值
覆盖原来的值

copy:

深拷贝

popitem:

弹出最后的一组键值对

pop:

传入键,获得值,将键值对弹出

clear:
清空字典

高阶函数:

1).map(fn, lsd1, [lsd2])

参数一:fn --> 函数对象
参数二和三: lsd1&lsd2 ---> 序列对象(列表、元祖、集合、字符串)

功能:将fn函数做用与lsd1中的每个元素,获得一个可迭代对象(mapobject)返回

2).reduce(fn, lsd):

参数1:fn --> 函数对象
参数2:lsd --> 序列对象

功能:将第一次的执行结果和lsd序列中的后续元素继续运算,....

3).filter(fn, lsd):

解释:
参数1:fn是一个函数对象
参数2:lsd是一个序列对象
功能:将fn函数做用于lsd序列对象的每个元素上,若是fn函数的返回结果为True,那么就保留这个元素
若是返回是Flase,那么就舍弃这个元素;最终返回的仍是一个惰性序列(filterobject类型)

4).sorted函数:

可是在它以前咱们已经学过了list中的sort函数,它们要作的事情是如出一辙的,
可是list中的sort执行之后会直接影响list自己,
而sorted函数执行完毕以后,会返回一个新的容器对象,不会影响自己


 

2.一、数据类型

整数型(int)、浮点数(小数、float)、布尔型(真假、bool)、字符串(str)、列表(list)、元祖(tuple)、字典(dict)、集合(set)、

 


3.一、numpy

NumPy系统是Python的一种开源的数值计算扩展,一个强大的N维数组对象Array,比较成熟的(广播)函数库,用于整合C/C++和Fortran代码的工具包,实用的线性代数、傅里叶变换和随机数生成函数,numpy和稀疏矩阵运算包scipy配合使用更增强大。

属性:

ndim:维度
shape:形状(各维度的长度)
size:总长度
dtype:元素类型

基本操做:

索引、切片、级联、变形、切分、拷贝

聚合:


4.1pandas

Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而建立的,pandas 归入了大量库和一些标准的数据模型,提供了高效地操做大型数据集所需的工具,pandas提供了大量能使咱们快速便捷地处理数据的函数和方法,它使Python成为强大而高效的数据分析环境的重要因素之一。

Series:能够把Series当作一个定长的有序字典,能够经过shape,size,index,values等获得series的属性

能够经过head(),tail()快速查看Series对象的样式,可使用pd.isnull(),pd.notnull(),或自带isnull(),notnull()函数检测缺失数据,Series对象自己及其索引都有一个name属性。

操做:建立、索引、切片

dataframe:

最经常使用的方法是传递一个字典来建立。DataFrame以字典的键做为每一【列】的名称,以字典的值(一个数组)做为每一列。
此外,DataFrame会自动加上每一行的索引(和Series同样)。
同Series同样,若传入的列与字典的键不匹配,则相应的值为NaN。

操做:建立、索引、级联、合并

相关文章
相关标签/搜索