数据分析介绍
基本概念
- 用适当的统计分析方法对收集来的大量数据进行分析
- 提取有用信息和形成结论
- 对数据加以详细研究和概括总结的过程
数据分析的流程:
明确目的→准备数据(爬虫、公司本地数据、第三方数据)→数据解析(numpy、pandas)→分析数据 (需要业务理解和业务经验)→获得结论→成果可视化
为什么要学习数据分析:
- 岗位需求
- 机器学习的基础
- 数据科学的基础
数据分析与数据挖掘异同:
同:都是对数据进行分析、处理等操作,从而得到有价值的信息
异:
1、在应用工具上,数据分析更多的是借助现有的分析工具进行;而数据挖掘一般需要通过编程来实现
2、在行业知识方面,数据分析要求对所从事的行业有比较深的了解,更多的是将数据与业务紧密结合起来;而数据挖掘不需要有太多的行业知识,更专注与技术层面
环境部署:pycharm和jupyter
Jupyter
可以执行端到端的数据科学工作流程的工具,包括数据清理,统计建模,构建和训练极其学习模型,可视化数据
特点:
基于web的在线编辑器
可交互式
jpynb文件分享
支持markdown
- code→代码
- Markdown→标记(在运行一段代码后添加你的结论、添加注释等)
- Raw NBConvert→原生NBConvert(将你的笔记本转换成另一种格式,(比如HTML)的命令行工具)
- Heading→标题(也是Markdown语法)
快捷键使用
-
运行→Ctrl+Enter
-
ESC→命令模式
-
Enter→编辑模式
进入命令模式之后的快捷键: -
A→在活跃单元之上插入一个新单元
-
B→在活跃单元之下插入一个新单元
-
连续按两次D→可以删除一个单元
-
Z→撤销被删除的单元
-
Y会将当前活跃的单元变成一个代码单元
-
M可以切换回Markdown
-
shift + ↑选中,shift + M合并单元块
处于编辑模式时快捷键: -
Ctrl + Home到达单元起始位置
-
Ctrl + S保存进度
-
Ctrl + enter会运行整个单元块
-
Alt + Enter 会运行单元块,再在下面添加一个新单元
进入命令模式,按住H就可以看到快捷键
在jupyter当中
li = [1,2,3]
li? #自省机制 查看对象的概要信息
运行后出现
Type: list
String form:[1,2,3]
Length: 3
Docstring:
list() → new empty list
list(iterable) → new list initialized from iterable`s items
英文状态下一个问号?是查看概要,两个问号??可以查看函数或模块源代码
文件操作
打开文件,写入文件,记得带文件后缀
txt文件
在pycharm当中,读取的中文会乱码,在jupyter里正常显示,第二次读取不出来,注意文件指针
注意:
- r模式,当文件不存在时则报错
- f.read() → 读取全部
- f.readline() → 逐行读取
- f.readlines() → 读取全部,且为列表
- 读取不可逆
用write()函数写入时,内容存在缓存当中,当close()关闭文件时,内容才会出现在文件
json
json其实是以字符串的形式呈现,json中的数据必须用双引号包裹,外部用单引号
写入时,先写成字典格式,再转换成json
with open("data.json".mode='r') as f:
res = f.read() #'{"age":18}'
print(type(res)
res = json.load(f) #json对象转为dict对象
print(type(res))
print(res["age"])
CSV文件
CSV即Comma Separate Values,有时也称为字符分隔值,因为分隔字符也可以不是逗号,其文件以纯文兵形式储存表格数据(数字和文本)。经常用来作为不同程序之间的数据交互的格式
import csv
with open("demo.csv,mode='w') as datacsv
datawriter = csv.writer(datacsv) #创建CSV写入对象
datawriter.writerow(["name","age","class"])
datawriter.writerow(["bruin","18","ana2"]) #逐行写入
datawriter.writerows([['jerry','20'.'ana2'],['jerry','20'.'ana2'],['jerry','20'.'ana2']])
with open('demo.csv',mode='r',newline='') as datacsv:
datareader = csv.reader(datacsv)
for i in datareader:
print(i)
['jerry','20'.'ana2']
['jerry','20'.'ana2']
['jerry','20'.'ana2']
用pandas操作:
pip install pandas
import pandas as pd
data = pd.read_csv('demo.csv') #读取数据
#会出现表格形式的数据,并且表格前带有索引
#如果不想要索引,可以设置index参数
data.to_csv('demo.csv,index=False)
不要在打开文件的时候操作,会报错
Excel文件
在Python中,有很多第三方模块用来操作Excel,比如说:xlwt,xlrd,openpyxl等
注意:openpyxl只支持2010版本以上的xlsx文件
思路:
- 创建工作簿
- 创建工作表
- 写入数据
- 保存
使用openpyxl将数据写入demo.xlsx
pip install openpyxsl
from openpyxl import Workbook
wb = Workbook() #创建工作簿
ws = wb.active #激活第一个工作表
#数据
data = [
['name','age'.'class'],
['jerry','20'.'ana2'],
['jerry','20'.'ana2'],
['jerry','20'.'ana2']
]
#data里边有多少个元素,就意味着有多少行
for row in data:
ws.append(row)
wb.save('demo.xlsx')
#打开jpynb文件会报错,说编码错误,但是Excel已经写入了
使用openpyxl读取demo.xlsx数据
from openpyxl import load_workbook
wb = load_woekbook('demo.xlsx')
#单元格的值
tuple(ws.rows)
for row in ws.rows: #循环出每一行
for cell in row: #循环每一个单元格
print(cell.value)
使用pandas读取demo.xlsx
import pandas as pd
pd.read_excel('demo.xlsx')
data.to_excel('demo.xlsx',index=False)