安装数据分析的两个标准环节
1,Anaconda,是一个开源Python发行版本,包含包管理器和环境管理器;
2,Jupyter Notebook将数据分析的代码、图像和文档全部组合到一个web文档中。
注释方法
1,#
2,多行注释用三个单引号'''或者三个双引号"""将注释括起来
数据类型
数字类型
#数字类型:整形
var1=1
var2=10
print(var1,var2)
#数字类型:浮点型
var3=0.1
var4=1.1
print(var3,var4)
#数字类型:复数型
var5=4e-10j
var6=13.14j
print(var5,var6)
1 10
0.1 1.1
4e-10j 13.14j
字符串类型的定义及应用
# 字符串类型定义
var1 = 'Hello World!'
var2 = "Runoob"
print(var1,var2)
Hello World! Runoob
#字符串类型截取
var1 = 'Hello World!'
var2 = "Runoob"
print('更新字符串:',var1[:6]+var2)
更新字符串: Hello Runoob
#字符串的格式化
print("我叫%s我今年%d岁了!" % ('小明',10))
我叫 小明 我今年 10 岁了!
容器类型的定义与应用
# 1,列表类型
# 创建列表
list1=['Google','Ruboo',1997,2001]
list2=[1,2,3,4,5,6,7]
print(list1)
print(list2)
['Google', 'Ruboo', 1997, 2001]
[1, 2, 3, 4, 5, 6, 7]
#访问列表中的值
list1=['Google','Ruboo',1997,2001]
list2=[1,2,3,4,5,6,7]
print('list1[0]:',list1[0])
print('list2[1:5]:',list2[1:5])
list1[0]: Google
list2[1:5]: [2, 3, 4, 5]
#更新列表
list1=['Google','Ruboo',1997,2001]
print('列表中第三个元素为:',list1[2])
list1[2]=2000
print('更新之后列表中第三个元素为:',list1[2])
列表中第三个元素为: 1997
更新之后列表中第三个元素为: 2000
# 2,元祖类型
#创建元祖
tup1=('Google','Ruboo',1997,2001)
tup2=(1,2,3,4,5)
tup3="a","b","c","d","e"
tup4=()
print(tup1,tup2,tup3,tup4)
('Google', 'Ruboo', 1997, 2001) (1, 2, 3, 4, 5) ('a', 'b', 'c', 'd', 'e') ()
#连接元祖
tup5=tup2+tup3
print(tup5)
(1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e')
# 3,字典类型
#创建字典
dic={'name':'ruboo','age':17,'class':'first'}
print('Dic(Name):',dic['name'])
print('Dic(Age):',dic['age'])
Dic(Name): ruboo
Dic(Age): 17
#修改字典
dic={'name':'ruboo','age':17,'class':'first'}
dic['name']='Google'
dic['age']=10
print('Dic(Name):',dic['name'])
print('Dic(Age):',dic['age'])
Dic(Name): Google
Dic(Age): 10
#4,集合类型
#创建集合,一个无序的不重复元素序列
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)
{'banana', 'apple', 'orange', 'pear'}
#集合的元素添加
basket={'apple','orange','apple','pear','orange','banana'}
basket.add('cherry')
print(basket)
{'apple', 'pear', 'orange', 'cherry', 'banana'}
#集合的元素移除
basket={'apple','orange','apple','pear','orange','banana'}
basket.remove('pear')
print(basket)
{'banana', 'apple', 'orange'}
# 随机删除集合中的一个元素
thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
x = thisset.pop()
print(x)
print(thisset)
Google
{'Taobao', 'Facebook', 'Runoob'}
#计算集合元素个数
thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
len(thisset)
4
条件判断
#条件判断
# if ... elif...else
'''每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。'''
a=1
while a<7:
if (a % 2==0):
print(a,"是偶数")
else:
print(a,"是奇数")
a+=1
1 是奇数
2 是偶数
3 是奇数
4 是偶数
5 是奇数
6 是偶数
循环语句
#while循环语句
n=100
sum=0
counter=1
while counter<=100:
sum=sum+counter
counter=counter+1
print('从1到%d之和等于%d'%(n,sum))
从1到 100 之和等于 5050
#while...else循环语句
counter=1
while counter<5:
print(counter,'<5')
counter+=1
else:
print(counter,'>=5')
1 <5
2 <5
3 <5
4 <5
5 >=5
# for 循环语句
# 遍历字符换或者列表
language=['C++','PYTHON','PHP','JAVA']
for x in language:
print(x)
C++
PYTHON
PHP
JAVA
#for循环中的break语句,跳出当前循环
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
if site=="Runoob":
print('菜鸟教程')
break
print('循环数据',site)
else:
print('不存在循环')
print('完成循环!')
循环数据 Baidu
循环数据 Google
菜鸟教程
完成循环!
#for循环中的continue语句,跳过当前继续之后的循环
for letter in 'Runoob': # 第一个实例
if letter == 'o': # 字母为 o 时跳过输出
continue
print ('当前字母 :', letter)
var = 10 # 第二个实例
while var > 0:
var = var -1
if var == 5: # 变量为 5 时跳过输出
continue
print ('当前变量值 :', var)
print ("Good bye!")
当前字母 : R
当前字母 : u
当前字母 : n
当前字母 : b
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!
函数
如果函数参数是字符串, 元祖, 和数字这3种不可更改的对象,参数传递时,相当于传递的是复制出来的数据,对于数据本身没有影响
如果参数传入的数据类型是可变的类型,当函数内部修改该数据时,原始的数据也改变了。
#定义函数
def hello():
print("Hello World!")
hello()
Hello World!
#定义面积函数
def area(width,lenth):
return width*lenth
width=4
lenth=5
print('width=4','lenth=5','area=',area(width,lenth))
width=4 lenth=5 area= 20
#定义函数:改变数据的值
def changeInt(a):
a=a+1
'''使用函数参数是不可变数据类型(字符串,元祖,数值):传递的只是该数据类型的值(相当于复制一份)'''
b=1
print('调用函数之前b的值=',b)
changeInt(a=b)
print('调用函数之后b的值=',b)
调用函数之前b的值= 1
调用函数之后b的值= 1
#定义函数:改变列表的值
def changeList(inputList):
inputList.append('奶茶妹妹')
'''使用函数参数是可变数据类型:传递的是该变量的引用地址'''
nameList=['马云','刘强东']
print('调用函数之前的值:',nameList)
changeList(inputList=nameList)
print('调用函数之后的值:',nameList)
调用函数之前的值: ['马云', '刘强东']
调用函数之后的值: ['马云', '刘强东', '奶茶妹妹']
数据结构
队列(queue) 队列就像你去餐厅外婆家吃饭排队,新来的人在队列尾部加入,叫做入队。取完票的人从队列首部离开队列,叫做出队
#导入collections包
from collections import deque
#定义队列:排队吃饭人的编号
queue=deque(['001','002','003','04','005'])
#入队:在队列尾部插入元素
queue.append('006')
print(queue)
deque(['001', '002', '003', '04', '005', '006'])
#出队:在队列头部删除元素
queue.popleft()
'001'
print(queue)
deque(['002', '003', '04', '005', '006'])
#定义栈:浏览我个人知乎主页的顺序
stack=deque(['知乎动态','知乎回答','知乎文章'])
print(stack)
deque(['知乎动态', '知乎回答', '知乎文章'])
#入栈:在栈顶加入元素
stack.append('知乎专栏')
print(stack)
deque(['知乎动态', '知乎回答', '知乎文章', '知乎专栏', '知乎专栏'])
#出栈:将栈顶元素移除
stack.pop()
'知乎专栏'
print(stack)
deque(['知乎动态', '知乎回答', '知乎文章', '知乎专栏'])
排序字典
'''OrderedDict:按照插入key的顺序,对字典进行排序'''
from collections import OrderedDict
#定义有序字典
gatafaDict=OrderedDict({'腾讯':'HK:00700','阿里巴巴':'baba','苹果':'Apple','谷歌':'GOOGLE','Facebook':'fb','亚马逊':'amzn'})
gatafaDict
OrderedDict([('腾讯', 'HK:00700'),
('阿里巴巴', 'baba'),
('苹果', 'Apple'),
('谷歌', 'GOOGLE'),
('Facebook', 'fb'),
('亚马逊', 'amzn')])
计数器
'''计数器'''
from collections import Counter
cDict = Counter('有一种鸟是永远也关不住的,因为他们的羽毛太光亮了。羽毛太光亮')
cDict['亮']
2
#出现次数最多的3个词
cDict.most_common(3)
[('的', 2), ('羽', 2), ('毛', 2)]
模块
Python内置模块使用
''''Python内置模块'''
#第1步:引入模块
import sys
#第2步:使用模块中的函数,属性
pathList=sys.path
print('Python 路径为:\n', pathList)
Python 路径为:
['C:\\Users\\nianq\\Anaconda3\\python36.zip', 'C:\\Users\\nianq\\Anaconda3\\DLLs', 'C:\\Users\\nianq\\Anaconda3\\lib',
'C:\\Users\\nianq\\Anaconda3', '', 'C:\\Users\\nianq\\Anaconda3\\lib\\site-packages',
'C:\\Users\\nianq\\Anaconda3\\lib\\site-packages\\win32',
'C:\\Users\\nianq\\Anaconda3\\lib\\site-packages\\win32\\lib',
'C:\\Users\\nianq\\Anaconda3\\lib\\site-packages\\Pythonwin',
'C:\\Users\\nianq\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
'C:\\Users\\nianq\\.ipython']
'''使用conda命令安装包:conda install pandas使用第三方模块:pandaspandas是数据分析工具'''
#引入模块
import pandas as pd
#文件路径(在本地运行时替换成你自己的实际数据路径)
fileNameStr=r'C:\Users\nianq\Desktop\数据分析\中级数据分析\病历数据.xlsx'
#读取excel文件里的数据
xl = pd.ExcelFile(fileNameStr)
#获取指定工作表(Sheet)名称的数据
patientDf = xl.parse('Sheet1')
print(patientDf)
病人编号 姓名 年龄 糖尿病类型 病情
0 1 猴子 29 1型糖尿病 较差
1 2 马云 34 2型糖尿病 好转
2 3 王健林 28 1型糖尿病 显著好转
3 4 马化腾 52 2型糖尿病 较差
转义字符
在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:
转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\'单引号
\"双引号
\a响铃
\b退格(Backspace)
\e转义
\000空
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制数,yy代表的字符,例如:\o12代表换行
\xyy十六进制数,yy代表的字符,例如:\x0a代表换行
\other其它的字符以普通格式输出