一、字典
字典是一种映射类型,是一个恶无序的键值对集合,关键字必须使用不可变类型,也就是说list和包含可变类型额tuple不能做关键字,在同一个字典中,关键字还必须互不相同。
二、数据运算
- 取整运算:7//4 = 1
- 在Python中 2.1 +4.2 == 6.3 结果为false
- 将数组中的字符串拼接起来:
parts = ['hello', 'world','ni','hao']
' '.join(parts)
输出为:
'hello world ni hao'
parts = ['hello', 'world','ni','hao']
','.join(parts)
输出为:
hello,world,ni,hao
三、Python数据结构
- 概念:
数据结构是指相互之间存在的一种或多种特定关系的数据类型的集合 - 常用的数据结构:
- List 列表:写在
方括号
之间、用逗号分开的元素列表,列表中元素的类型可以不相同 - Tuple 元组:与列表类似,不同之处在于元组的元素不能被修改,元组写在
小括号
里,元素之间用逗号
隔开,元组中的元素类型也可以不同。 - Set 集合:集合set是一个无序不重复元素的集,基本功能就是去重,可以使用{}或者
set()
函数创建set集合,注意,创建空空集合的时候必须用set()
不能使用{}
,因为{}是用来创建一个空字典 - Dic 字典:字典是一种映射类型,是一个无序的键值对集合,关键字必须使用不可变类型,也就是说list和包含可变类型的tuple不能做关键字,在同一个字典中,关键字还不能相同。
判断一个元素是否在列表中:
- List 列表:写在
a = [1, 2, 3, 4, 5]
2 in a
结果为:
True
判断多个元素是否在列表中:
set([5,10])<= set(a)
结果为:
False
set([1,2]) <= set(a)
结果为True
set([7,8]) <= set(a)
结果为False
使用元组和列表:
一般情况下使用列表,但是当我们希望元素不被改变的时候才会用到元组
字典:
dic = {} #创建一个空的字典
tel = {'tom':123,'jack':456,'jim':789}
print(tel,type(tel), len(tel))
输出结果:
{'tom': 123, 'jack': 456, 'jim': 789} <class 'dict'> 3
删除一个键值对:
del tel['tom']
四、Pandas
- Series系列
系列用于存储一行或者一列的数据,以及与之相关的索引。
不能直接在series中直接追加元素,必须先转化为Series再追加
x = Series(['a','b','c'],index=['first','second','third'])
#不能追加单个元素,需要使用一个变量来承载变化
y = Series(['d`])
x.append(y)
Series删除数据:
y.adrop('first')
- DataFrame数据框
数据框是用于存储多列和多行的数据集合。
五、Python中的数据结构
- 程序结构:
主要是指结构化程序设计,把一个程序分成若干互相独立的模块,在设计程序时,只要各个模块设计正确,就可以保证整个程序也肯定设计正确。
结构化程序是由若干个基本结构组合而成的,每一个结构可以包含若干条语句和其他基本结构,共有三种基本结构- 顺序结构:指程序按照我们编写的顺序,一条条的运行
- 选择结构:指满足一定条件才会执行的程序模块。
- 循环结构:指只要满足一定的条件,程序模块就会不断地执行
- 函数
函数是组织好的,可重复使用的,用来实现单一,或者相关联功能的代码段
函数语法:
def functionname (parameters):
function_suite 函数逻辑
return [expression] 函数返回值
匿名函数语法:
lambda [arg1[arg2,arg3....argn]]:expression
argi:函数参数
expression:程序逻辑
- 向量化计算
定义:向量化计算是一种特殊的并行计算的方式,相比于一般程序在同一时间只执行一个操作的方式,它可以在同一时间执行多次操作,通常是对不同的数据执行同样的一个或一批指令,或者说把指令应用于一个数据/向量
应用:- 生成等差数列 numpy.arange(start, end, step)分别为(开始值,结束值,步长)
- 四则运算:相同位置的数据进行运算,结果保留在相同的位置
注意:如果两个向量的长度不一样,就会使用rep方法,将短的变量不断重复,直到和长的变量长度一致 - 函数计算:相同位置的数据进行函数的计算,函数返回结果保留在相同的位置
向量化计算的原则: - 代码中尽可能避免显示的for循环
- 不能及早的优化
向量的平方:
import numpy as np
r = np.arange(1,10,2) [1 3 5 7 9]
np.power(r,2) [1 9 25 49 81]
a = [1,2,3,2,1]
b = np.power(t,a) [1 9 125 49 9]
向量的转置:
r.T
五、数据
随机抽样:
1. 随机抽样定义:是指随机从数据中,按照一定的行数或者比例抽取数据
2. 随机抽样函数:numpy.random.randint(start,end,num) 分别是(范围开始,范围结束,抽样个数) 返回值为行数的索引值序列
;
记录合并:
1. 定义:是指将两个结构相同的数据框,合并成一个数据框
2. 记录合并函数:concat([dataFrame1,dataFrame2,...])返回值为dataFrame
字段合并:
1. 字段合并定义:是指将同一个数据框中的不同列进行合并,形成新的列
2. 字段合并方法:x = x1 + x2 + ..
3. 要求:要求这些数据的长度一致,并且数据都是字符型的数据,如果是逻辑型或者数值型的数据必须先转化为字符型。
字段匹配
1. 定义:指不同结构的数据框,按照一定的条件进行合并。
2. 函数:merge(x,y,left_on,right_on) 分别表示:(第一个数据框,第二个数据框,第一个数据框用于匹配的列)
数据标准化:
定义:是指将数据按比例缩放,使之落入到特定区间,一般我们使用0-1标准化:
x* = (x-min)/(max-min)
数据分组:
1. 定义:根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同的区间部分来进行研究,以揭示其内在的联系和规律性
2. 函数:cut(series,bins,right=True,labels=NULL)分别为(需要分组的数据,分组的划分数据,分组的时候,右边是否闭合,分组的指定能够以标签,可以不自定义)
日期转换:
1. 定义:指将字符型的日期格式的数据,转换为日期型数据的过程
2. 日期转换函数:date = to_datetime(dateString,format)
属性 | 注释 |
---|---|
%Y | 代表年份 |
%m | 代表月份 |
%d | 代表日期 |
%H | 代表小时 |
%M | 代表分钟 |
%S | 代表秒 |
日期格式化
1. 定义:指将日期型的数据,按照指定的各省市,转为字符型的数据
2. 函数:apply(lambda x:处理逻辑)
datetime.strftime(x,format)
日期抽取:
1. 定义:指从日期格式里抽取出需要的部分属性
2. 语法:datetime列.dt.prooprety
属性 | 注释 |
---|---|
second | 1-60秒 |
minute | 1-60分钟 |
hour | 1-24小时 |
day | 1-31天 |
month | 1-12月 |
year | 年份 |
weekday | 1-7 |
六、数据可视化
散点图
- 散点图是以一个变量为横坐标,另一个变量为纵坐标,利用散点的分布形态反映变量关系的一种图形。
- 函数:
plot(x,y,'.'.color=(r,g,b)) '.'/'o'表示大点还是小点
plt.xlabel('x轴标签');
plt.ylabel('y轴标签');
plt.grid(True);
折线图
函数:plot(x,y,style,color,linewidth)
title(‘图的标题’);
饼图
函数:pie(x,labels,colors,explode,autopct);
直方图
hist(x,color,bins,cumulative=False)分别为(需要绘制的向量,颜色,分组个数,是否累计计数)
七、python中mysql的连接
MySQLdb库操作mysql数据库:
import MySQLdb
#打开数据库连接
db = MySQLdb.connect("主机","username","password","dbname")
#使用execute()方法执行SQL语句
cursor.execute(sql)
#使用fetchone()方法获取一条数据库
data = cursor.fetchone()
print "Database version : %s " % data
或者这样打印
for row in cursor:
print row
#关闭数据库连接
db.close()
八、数据分析技巧
基本统计:
- 基本统计分析:又叫描述性统计分析,一般统计某个变量的最小值、第一四分位值、中值、第三四分位值、以及最大值。
- 常用的统计指标:
- 计数
- 求和
- 平均值
- 方差
- 标准差
- 函数:describe()
- 参数:
统计函数 | 注释 |
---|---|
size | 计数 |
sum | 求和 |
mean | 均值 |
var | 方差 |
std | 标准差 |
分组分析
- 分组分析:是指根据分组字段,将分析对象划分成不同的部分,以进行对比分析各组之间的差异性的一种分析方法。
- 常用的统计指标:
- 计数
- 求和
- 平均值
- 分组统计函数:
groupby(by=[分组1,分组2,...])
[统计列1,统计列2,...]
.agg({统计列别名1:统计函数1,统计列别名2:统计函数2,...})
参数说明:
by: 用于分组的列
中括号:用于统计的列
agg:统计别名显示统计值的名称,统计函数用于统计数据
分布分析
- 分布分析:是指根据分析目的,将数据(定量数据)进行等距或者不等距的分组,进行研究各组分布规律的一种分析方法