数据分析三大件

一、jupyter的基本使用

数据分析三大件_第1张图片

二、Numpy

2.1 numpy的创建

数据分析三大件_第2张图片

#使用array()创建一个多维数组
import numpy as np
arr=np.array([1,2,3])

数据分析三大件_第3张图片
数据分析三大件_第4张图片

数据分析三大件_第5张图片

数据分析三大件_第6张图片
数据分析三大件_第7张图片

2.2 numpy的属性

数据分析三大件_第8张图片

修改数组的元素类型

数据分析三大件_第9张图片

2.3 索引和切片

(1)行切片

数据分析三大件_第10张图片

(2)列切片

数据分析三大件_第11张图片

数据分析三大件_第12张图片

注意列切片
数据分析三大件_第13张图片
数据分析三大件_第14张图片

(3)综合切片

数据分析三大件_第15张图片

数据分析三大件_第16张图片

(4)倒置

数据分析三大件_第17张图片

数据分析三大件_第18张图片

* 将图片进行翻转

数据分析三大件_第19张图片
在这里插入图片描述

* 裁剪图片

数据分析三大件_第20张图片

(5)变形

多维变成一维数组
数据分析三大件_第21张图片
一维变多维
数据分析三大件_第22张图片

(6)级联操作

只能维度相同的级联
在这里插入图片描述

数据分析三大件_第23张图片
数据分析三大件_第24张图片

* 拼图操作

数据分析三大件_第25张图片

(7)聚合操作

数据分析三大件_第26张图片

数学相关

常用数学函数数据分析三大件_第27张图片
数据分析三大件_第28张图片

方差是标准差的平方

数据分析三大件_第29张图片

矩阵相关

数据分析三大件_第30张图片
转置
数据分析三大件_第31张图片
相乘
数据分析三大件_第32张图片

三、Pandas

主要用于 存储非数值的数据类型
在这里插入图片描述
这是两种不同的数据结构
在这里插入图片描述

3.1 Series

数据分析三大件_第33张图片
数据分析三大件_第34张图片

索引值变为a,b,c,d。

数据分析三大件_第35张图片
数据分析三大件_第36张图片

3.2 索引和切片

数据分析三大件_第37张图片
在这里插入图片描述

3.3 属性

表示一维数组
数据分析三大件_第38张图片
数据分析三大件_第39张图片

在这里插入图片描述
series也只能存储同类型数据

3.4 常用方法

(1)取数据

数据分析三大件_第40张图片
数据分析三大件_第41张图片

(2)对元素进行判断

数据分析三大件_第42张图片
并且每个数组的数据类型为布尔值
数据分析三大件_第43张图片

(3)算数运算

数据分析三大件_第44张图片
数据分析三大件_第45张图片
在这里插入图片描述

3.2 Dataframe

(1)创建

由多个Series组成,是个二维数据。
数据分析三大件_第46张图片

数据分析三大件_第47张图片
数据分析三大件_第48张图片

(2)属性

数据分析三大件_第49张图片

数据分析三大件_第50张图片

* 练习

数据分析三大件_第51张图片

dic={
    '张三':[150,150,150,300],
    '李四':[0,0,0,0]
}
df=DataFrame(data=dic,index=['语文','数学','英语','理综'])
df

数据分析三大件_第52张图片

(3)索引

数据分析三大件_第53张图片

取列

数据分析三大件_第54张图片

  • 取单列

在这里插入图片描述

  • 取a,c两列

数据分析三大件_第55张图片

取行、单个元素

数据分析三大件_第56张图片

iloc和loc

数据分析三大件_第57张图片
数据分析三大件_第58张图片
数据分析三大件_第59张图片
数据分析三大件_第60张图片
数据分析三大件_第61张图片

(4)切片

数据分析三大件_第62张图片

* 应用

数据分析三大件_第63张图片
数据分析三大件_第64张图片
数据分析三大件_第65张图片
数据分析三大件_第66张图片
数据分析三大件_第67张图片

3.3 股票小项目

数据分析三大件_第68张图片
数据分析三大件_第69张图片
数据分析三大件_第70张图片
数据分析三大件_第71张图片
数据分析三大件_第72张图片
数据分析三大件_第73张图片
数据分析三大件_第74张图片

(1)需求1:输出所有 收盘比开盘上涨3%的日期

数据分析三大件_第75张图片

(2)需求2:输出开盘比前日收盘跌幅超过2%的日期

数据分析三大件_第76张图片
数据分析三大件_第77张图片
数据分析三大件_第78张图片

import tushare as ts
import pandas as pd
from pandas import DataFrame,Series
import numpy as np

# 获取某只股票的历史行情数据
df=ts.get_k_data(code='600519',start='2000-01-01') 
df

# 将互联网上获取的股票数据存储到本地
df.to_csv('./maotai.csv')

# 将本地存储的数据读入到df中
pd.read_csv('./maotai.csv')
df.head()

# 对读取出的数据进行相关处理
# 查看每一列的数据类型
df['date'].dtype

# 另一种方法
df.info()

# 将time列转换为时间序列
df['date']=pd.to_datetime(df['date'])
df['date'].dtype

# 将时间作为原数据的行索引
df.set_index('date',inplace=True)

df.head()

### 需求1:输出所有 收盘比开盘上涨3%的日期

# 伪代码:(收盘-开盘)/开盘 > 0.03
true_index=(df['open']-df['close'])/df['open']>0.03 # 获取到行索引
new=df.loc[true_index]## 得到全是股票上涨的数组
new.index

(new['open']-new['close'])/new['open']>0.03  #验证一下获取到的数据

(df['open']-df['close'])/df['open']>0.03 # 原来是有true用false

### 需求2:输出开盘比前日收盘跌幅超过2%的日期

# 伪代码:(开盘-前日收盘)/前日收盘 < -0.02
df['close'] 

# 使原始代码的close列整体下移一位
# 前日收盘
df['close'].shift(1)

# 成功获取到索引
(df['open']-df['close'].shift(1))/df['close'].shift(1)<-0.02

# 成功获取到日期
df.loc[(df['open']-df['close'].shift(1))/df['close'].shift(1)<-0.02].index

### 需求3: ![image-3.png](attachment:image-3.png)

# 时间节点2010-2023  
#一手股票:100支股票
# 一个完整的年,需要买/卖多少支股票?1200
# 单价使用开盘价 

new=df['2010-01':'2023-6'] #行索引是时间序列才可以这样切
new

# 获取每个月的第一个交易日——使用 数据的重新取样技术
# 根据月份从原始数据中提取每月第一个交易日
the_first=new.resample('M').first()
the_first

the_first['open']


3.4 DataFrame 数据清洗

出现的情况数据分析三大件_第79张图片

(1)丢失的数据

有两种丢失数据
None对象类型
np.nan浮点类型

数据分析三大件_第80张图片

两者 的区别liangzhe
数据分析三大件_第81张图片

(2)处理空值的操作

删除空值所在的行

不能删除列,只能删除行。
需使用到isnull ,notnull ,any ,all

df.drop()的使用数据分析三大件_第82张图片> 数据分析三大件_第83张图片
数据分析三大件_第84张图片

数据分析三大件_第85张图片

dropna一步到位
数据分析三大件_第86张图片

对缺失值(空值)进行覆盖

当删除的成本过高时,选择覆盖
数据分析三大件_第87张图片

(3)处理重复数据drop_duplicates

数据分析三大件_第88张图片

(4)处理异常数据

在这里插入图片描述

数据分析三大件_第89张图片
数据分析三大件_第90张图片

(5)级联操作concat,append

理解:
将原始数据进行横向或纵向的拼接
横向级联就是将列表在水平方向延伸
列向级联就是在竖直方向延伸

数据分析三大件_第91张图片

水平方向的级联

数据分析三大件_第92张图片

不匹配级联

不匹配级联时,若想保留数据的完整性,必须使用outer(外级联)==

数据分析三大件_第93张图片

竖直方向的级联

数据分析三大件_第94张图片

append只能进行列向级联,且是外级联

数据分析三大件_第95张图片
数据分析三大件_第96张图片

import pandas as pd
import numpy as np
from pandas import Series,DataFrame 

df1=DataFrame(data=np.random.randint(0,10,size=(5,3)),columns=['a','b','c'])
df2=DataFrame(data=np.random.randint(0,10,size=(5,3)),columns=['a','d','c'])

df1

df2

pd.concat((df1,df2),axis=1)#horizon 级联

pd.concat((df1,df2),axis=0)#gradient 级联

# 内连接,去除NAN,只连接索引一致的项
pd.concat((df1,df2),axis=0,join='inner')

df1.append(df2)

df3=DataFrame(data=np.random.randint(0,10,size=(5,2)),columns=['a','b'])

df3

pd.concat((df1,df3),axis=1)  #进行横向级联

pd.concat((df1,df3),axis=0)  #进行纵向级联


(6)合并 merge

是对数据的合并
级联就只是做拼接
级联可以拼接多张表,合并只能对两个表进行操作
数据分析三大件_第97张图片

一对一合并

数据分析三大件_第98张图片
数据分析三大件_第99张图片

df1=DataFrame({
    'employee':['lucy','jack','lisa'],
    'group':['a','b','c']
})
df2=DataFrame({
    'employee':['lucy','jack','lisa'],
    'age':[18,19,20]
})

df1

df2

pd.merge(df1,df2,on='employee')

# 不写on,会默认将两个表共有的列,进行合并
pd.merge(df1,df2)

pd.merge(df1,df2,on='age')


一对多合并

数据分析三大件_第100张图片

df3=pd.DataFrame({
    'employee':['lucy','jack'],
    'group':['a','b'],
    'age':[18,19]
})
df3

df4=DataFrame({
    'group':['a','b','b'],
    'salary':[1000,2000,3000]
})
df4

pd.merge(df3,df4)

多对多合并

数据分析三大件_第101张图片
数据分析三大件_第102张图片

df5=pd.DataFrame({
    'group':['b','b','c'],
    'salary':[1000,2000,3000]
})
df5

df1=DataFrame({
    'employee':['lucy','jack','lisa'],
    'group':['a','b','b']
})
df1

pd.merge(df1,df5)# how默认为inner,不能合并的将被舍弃

pd.merge(df1,df5,how='outer')

左右合并

数据分析三大件_第103张图片

pd.merge(df1,df5,how='left')

pd.merge(df1,df5,how='right')

多个共同条件合并

数据分析三大件_第104张图片

没有共同索引的合并

数据分析三大件_第105张图片

df1=pd.DataFrame({
    'name':['lucy','jack','lisa'],
    'group':['a','b','c'],
    'age':[21,22,18],
})
df2=pd.DataFrame({
    'employee':['lucy','bob','mike'],
    'ages':[18,19,20],
})

df1

df2

# 没有共同索引的数据合并
pd.merge(df1,df2,left_on='name',right_on='employee')

3.5人口分析小项目~

数据分析三大件_第106张图片

3.6 替换操作

数据分析三大件_第107张图片
数据分析三大件_第108张图片

3.7 map——映射&运算工具

数据分析三大件_第109张图片

注意!!!
map是Series的方法,只能被它调用。
数据分析三大件_第110张图片

map充当运算工具
数据分析三大件_第111张图片

3.8 随机抽样

在这里插入图片描述

数据分析三大件_第112张图片

将原始数据随机打乱(按列打乱)

数据分析三大件_第113张图片
数据分析三大件_第114张图片

随机抽样

数据分析三大件_第115张图片

3.9 分组聚合

分组
数据分析三大件_第116张图片

分组聚合

数据分析三大件_第117张图片

!!!!!!数据分析三大件_第118张图片

高级数据聚合

分组聚合后,根据自定义函数(方法),完成特地功能。
数据分析三大件_第119张图片
数据分析三大件_第120张图片
数据分析三大件_第121张图片

3.10 !!透视表和交叉表——26集

数据分析三大件_第122张图片

读取数据库中的数据

数据分析三大件_第123张图片

(1)透视表

数据分析三大件_第124张图片主要做分类汇总
在这里插入图片描述
数据分析三大件_第125张图片
数据分析三大件_第126张图片

3.11 !!美国大选献金项目数据分析

数据分析三大件_第127张图片

四、Matplotlib

4.1 绘制线形图

数据分析三大件_第128张图片
数据分析三大件_第129张图片

绘制多条线形图(两种方法)
数据分析三大件_第130张图片
数据分析三大件_第131张图片

(1)设置坐标系比例

figure的调用一定要放在绘图之前,否无效果
数据分析三大件_第132张图片坐标轴刻度不发生改变

(2)设置图例

数据分析三大件_第133张图片
数据分析三大件_第134张图片

(3) 设定 轴名、图名

数据分析三大件_第135张图片

(4) 图像的保存

数据分析三大件_第136张图片
数据分析三大件_第137张图片

(5) 曲线的风格和样式

数据分析三大件_第138张图片

4.2 柱状图

数据分析三大件_第139张图片
数据分析三大件_第140张图片

4.3 直方图

数据分析三大件_第141张图片
数据分析三大件_第142张图片

4.4 饼图

数据分析三大件_第143张图片
数据分析三大件_第144张图片
数据分析三大件_第145张图片
数据分析三大件_第146张图片
数据分析三大件_第147张图片
数据分析三大件_第148张图片

4.5 散点图

数据分析三大件_第149张图片

你可能感兴趣的:(大数据,numpy,pandas,matplotlib)