# -*- coding: utf-8 -*-
"""
Created on Sun Mar 4 19:35:44 2018
@author: Lenovo
"""
"""
python数据分析 网易云课堂 小蚊子数据分析之 python数据分析实战
一:数据分析概况
什么是数据分析?
数据分析是指采取适当的方法,对收集的数据进行分析,以总结规律、提取有价值的信息,形成
有效结论的过程。
数据分析的方法有很多,基本的分析方法有 对比分析、分组分析、结构分析、分布分析、交叉分析、矩阵分析等
比较高级的方法有回归分析、聚类分析、因子分析、时间序列分析、决策树、神经网络等
不是越高级的方法越好,而是能快速、有效的解决问题的方法才是好方法。
数据分析的作用:
现状分析(一般通过日常报表来完成,比如日报、周报、月报)
原因分析(一般通过专题分析来完成)
预测分析(一般用于定制企业的年度、月度或季度计划时)
数据分析的流程:
1:明确数据分析的目的和思路(以解决问题为中心,确定从哪几个角度,用哪些指标进行分析,搭建分析框架)
2:准备数据(数据来源有以下几种:企业内部的数据库、公开出版物、互联网、市场调查等)
3:处理数据(对收集的数据进行加工、整理,形成适合数据分析的样式)
4:分析数据(方法多样,参考上面的各种分析方法)
5:展现数据(通过表格和图形来展现,不要一味的追求高大上的图表,表达要明确直观)
6:报告撰写(数据分析报告是对整个数据分析过程的一个总结与呈现,
通过报告,将数据分析的起因、过程、结果、以及建议完整的呈现出来,以供决策者参考)
"""
"""
二:Python概况
Python的应用范围
如何持续提升自己的Python技能?
Python各种常用包
python的学习线路:
网易云课堂之
Python数据分析实战
→ Python统计分析实战
→ Python数据挖掘实战
→ Python数据抓取实战
Anaconda的使用
Spyder编辑器
view菜单 → panes → project explore
project菜单 → new project 与 existing project
变量窗口
多行执行代码
"""
"""
三:python编程基础
python的赋值符号是“=”
python的变量区分大小写,首字母不能是数字或者下划线,不能是python里的保留字
三种常用的数据类型:
Logical逻辑型 True 与False (首字母T或者F必须是大写)
Numeric数值型
Character字符型
&逻辑与,也叫“并且”运算
|逻辑或,也叫“或者”运算
not逻辑非,也叫“取反”运算
//:整除运算 7//4 得1
%:求余运算 10%4 得2
浮点数运算的误差(浮点数越界问题)
a=4.2
b=2.1
a+b的输出结果是6.30000001
a+b == 6.3 的结果是False
要解决这个问题,要用上Decimal
先导入 from decimal import Decimal
a = Decimal ('4.2')
b = Decimal ('2.1')
a+b的结果就是6.3
a+b == Decimal('6.3') 的结果是True
字符型Character,所有可以定义的字符,由单引号、双引号、或者三引号括起
转义字符
\' 表示单引号
\\ 表示反斜杠
\n 表示换行
#PYTHON里的单行注释,用#开头,用三引号表示多行注释
print('c:\some\name') # 这里的\n被当成了换行
s = "abcd\
efg" #\这里作为了续行符,执行结果会在一行内输出这个字符串
print (s)
"""
"""
数据结构是指相互之间存在一种或多种数据关系的集合
数据结构的概念、定义、限制、访问及修改
python中常用的数据结构是Series和DataFrame
Series是用于存储一行或者一列数据以及与其相关索引的集合,相当于excel中的一列,只是没有列名
pandas中,默认索引都是从零开始的
使用Series,要先从pandas包中导入
Series中的各个数据的类型可以不相同
#导入Series和使用Series构造函数的时候,Series的首字母S必须大写
from pandas import Series
x = Series(
['a', True, 1]
)
x
Series有一个默认的索引index,也可以指定index参数,用来设置自定义索引列
如:
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
Series中元素的访问、获取
x[1]
x['Second']
指定Series中的索引以后,仍然可以使用默认索引来访问元素?是的,上面的x[1]和x['Second']都会返回True
访问元素下标不能越界,x[3]就会出错,提示out of bounds
追加元素
不能直接追加, x.append('2')会出现异常,只能追加序列:
n = Series(['2']) #中括号外的小括号不能忘记
x.append(n) #这里是小括号哦,不是中括号
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
x[1]
x['second']
n = Series(['2'])
x.append(n)
#因为这里没有指定新添加元素的index,python给他的index是0
y = x.append(n)
x[0] #输出a,append不改变原来的序列,要接收这个变化,必须要重新赋值,比如x=x.append(n)才能改变原来的x
y[0] #输出2,0是python分配给新加元素的index
元素检测
判断Series有没有某个元素
x=x.append(n)
'2' in x 返回false,说明这个方法行不通,实际上,x里面是有2这个元素的
必须使用 '2' in x.values 方法
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
x[1]
x['second']
n = Series(['2'])
x = x.append(n)
'2' in x #返回False
'2' in x.values #返回True
Series切片
x[1:3] #注意这里的冒号要是英文模式下的
#返回第二个和第三个元素,python里的区间都是左封闭的[1:3)
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
x[1:3] #返回True 和 1
#通过数组的方式,取出指定位置的元素,这也叫定位获取,常用于随机抽样
x[[0,2,1]] #输出a,1,True
删除元素
1.根据index删除
x.drop(0) # 报错:labels [0] not contained in axis,难道默认index在删除的时候不起作用?
#手动设定index参数后,默认index只在取数时有用,如x[0]可以取出第一个元素。?
x.drop('first') #可用,但是同样不影响x,需重新赋值x=x.drop('first')
2.根据指定位置删除
x.drop(x.index[2])
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
x.drop(x.index[2]) #第三个元素“1”被删除
3.根据指定的值进行删除
x['2' != x.values] # 讲序列中值为‘2’的元素删除
from pandas import Series
x = Series(
['a', True, 1,'2'],
index=['first','second','third','fourth']
)
x['2' != x.values] #序列中只有'a', True, 1 ,‘2’被删除
drop和append一样,不改变原序列,要发生实际作用,需要重新赋值。
"""
from pandas import Series
x = Series(
['a', True, 1,'2'],
index=['first','second','third','fourth']
)
x['2' != x.values]
"""
Created on Sun Mar 4 19:35:44 2018
@author: Lenovo
"""
"""
python数据分析 网易云课堂 小蚊子数据分析之 python数据分析实战
一:数据分析概况
什么是数据分析?
数据分析是指采取适当的方法,对收集的数据进行分析,以总结规律、提取有价值的信息,形成
有效结论的过程。
数据分析的方法有很多,基本的分析方法有 对比分析、分组分析、结构分析、分布分析、交叉分析、矩阵分析等
比较高级的方法有回归分析、聚类分析、因子分析、时间序列分析、决策树、神经网络等
不是越高级的方法越好,而是能快速、有效的解决问题的方法才是好方法。
数据分析的作用:
现状分析(一般通过日常报表来完成,比如日报、周报、月报)
原因分析(一般通过专题分析来完成)
预测分析(一般用于定制企业的年度、月度或季度计划时)
数据分析的流程:
1:明确数据分析的目的和思路(以解决问题为中心,确定从哪几个角度,用哪些指标进行分析,搭建分析框架)
2:准备数据(数据来源有以下几种:企业内部的数据库、公开出版物、互联网、市场调查等)
3:处理数据(对收集的数据进行加工、整理,形成适合数据分析的样式)
4:分析数据(方法多样,参考上面的各种分析方法)
5:展现数据(通过表格和图形来展现,不要一味的追求高大上的图表,表达要明确直观)
6:报告撰写(数据分析报告是对整个数据分析过程的一个总结与呈现,
通过报告,将数据分析的起因、过程、结果、以及建议完整的呈现出来,以供决策者参考)
"""
"""
二:Python概况
Python的应用范围
如何持续提升自己的Python技能?
Python各种常用包
python的学习线路:
网易云课堂之
Python数据分析实战
→ Python统计分析实战
→ Python数据挖掘实战
→ Python数据抓取实战
Anaconda的使用
Spyder编辑器
view菜单 → panes → project explore
project菜单 → new project 与 existing project
变量窗口
多行执行代码
"""
"""
三:python编程基础
python的赋值符号是“=”
python的变量区分大小写,首字母不能是数字或者下划线,不能是python里的保留字
三种常用的数据类型:
Logical逻辑型 True 与False (首字母T或者F必须是大写)
Numeric数值型
Character字符型
&逻辑与,也叫“并且”运算
|逻辑或,也叫“或者”运算
not逻辑非,也叫“取反”运算
//:整除运算 7//4 得1
%:求余运算 10%4 得2
浮点数运算的误差(浮点数越界问题)
a=4.2
b=2.1
a+b的输出结果是6.30000001
a+b == 6.3 的结果是False
要解决这个问题,要用上Decimal
先导入 from decimal import Decimal
a = Decimal ('4.2')
b = Decimal ('2.1')
a+b的结果就是6.3
a+b == Decimal('6.3') 的结果是True
字符型Character,所有可以定义的字符,由单引号、双引号、或者三引号括起
转义字符
\' 表示单引号
\\ 表示反斜杠
\n 表示换行
#PYTHON里的单行注释,用#开头,用三引号表示多行注释
print('c:\some\name') # 这里的\n被当成了换行
s = "abcd\
efg" #\这里作为了续行符,执行结果会在一行内输出这个字符串
print (s)
"""
"""
数据结构是指相互之间存在一种或多种数据关系的集合
数据结构的概念、定义、限制、访问及修改
python中常用的数据结构是Series和DataFrame
Series是用于存储一行或者一列数据以及与其相关索引的集合,相当于excel中的一列,只是没有列名
pandas中,默认索引都是从零开始的
使用Series,要先从pandas包中导入
Series中的各个数据的类型可以不相同
#导入Series和使用Series构造函数的时候,Series的首字母S必须大写
from pandas import Series
x = Series(
['a', True, 1]
)
x
Series有一个默认的索引index,也可以指定index参数,用来设置自定义索引列
如:
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
Series中元素的访问、获取
x[1]
x['Second']
指定Series中的索引以后,仍然可以使用默认索引来访问元素?是的,上面的x[1]和x['Second']都会返回True
访问元素下标不能越界,x[3]就会出错,提示out of bounds
追加元素
不能直接追加, x.append('2')会出现异常,只能追加序列:
n = Series(['2']) #中括号外的小括号不能忘记
x.append(n) #这里是小括号哦,不是中括号
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
x[1]
x['second']
n = Series(['2'])
x.append(n)
#因为这里没有指定新添加元素的index,python给他的index是0
y = x.append(n)
x[0] #输出a,append不改变原来的序列,要接收这个变化,必须要重新赋值,比如x=x.append(n)才能改变原来的x
y[0] #输出2,0是python分配给新加元素的index
元素检测
判断Series有没有某个元素
x=x.append(n)
'2' in x 返回false,说明这个方法行不通,实际上,x里面是有2这个元素的
必须使用 '2' in x.values 方法
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
x[1]
x['second']
n = Series(['2'])
x = x.append(n)
'2' in x #返回False
'2' in x.values #返回True
Series切片
x[1:3] #注意这里的冒号要是英文模式下的
#返回第二个和第三个元素,python里的区间都是左封闭的[1:3)
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
x[1:3] #返回True 和 1
#通过数组的方式,取出指定位置的元素,这也叫定位获取,常用于随机抽样
x[[0,2,1]] #输出a,1,True
删除元素
1.根据index删除
x.drop(0) # 报错:labels [0] not contained in axis,难道默认index在删除的时候不起作用?
#手动设定index参数后,默认index只在取数时有用,如x[0]可以取出第一个元素。?
x.drop('first') #可用,但是同样不影响x,需重新赋值x=x.drop('first')
2.根据指定位置删除
x.drop(x.index[2])
from pandas import Series
x = Series(
['a', True, 1],
index=['first','second','third']
)
x.drop(x.index[2]) #第三个元素“1”被删除
3.根据指定的值进行删除
x['2' != x.values] # 讲序列中值为‘2’的元素删除
from pandas import Series
x = Series(
['a', True, 1,'2'],
index=['first','second','third','fourth']
)
x['2' != x.values] #序列中只有'a', True, 1 ,‘2’被删除
drop和append一样,不改变原序列,要发生实际作用,需要重新赋值。
"""
from pandas import Series
x = Series(
['a', True, 1,'2'],
index=['first','second','third','fourth']
)
x['2' != x.values]