第一讲 Python语言及工作环境准备
一、数据分析
1 数据分析的基本概念
- 1.用适当的统计分析方法对收集来的大量数据进行分析
- 2.提取有用信息和形成结论
- 3.对数据加以详细研究和概况总结
- 目的:从数据中挖掘规则、验证猜想、进行预测
2 数据分析的流程
- 明确目的(提出问题)->准备数据->数据解析->分析数据->获得结论->成果可视化
3 为什么要学习数据分析
- 1、有岗位需要
- 2、是机器学习的基础
- 3、数据科学的基础
4 环境部署
- 环境部署
认识jupyter
1、基于web的在线编辑器
2、可交互式
3、.ipynb文件分享
4、支持markdown
4.1 pip install jupyter
4.2安装完成后,输入命令jupyter notebook,会自动打开浏览器, 浏览器显示的是当前目录的文件。
4.3在F盘下新建文件夹,在命令行中输入F:切换到F盘,cd 新建文件夹,输入jupyter notebook ,此时打开的浏览器就显示为当前F盘下面的文件。
4.4新建python3文件
4.5点击上方Untitled,重命名为demo
4.6 在当前浏览器中输入print(‘hello yangyu’),点击运行执行此操作。
4.7 在F盘\新建文件夹下生成的文件如下:
4.8不要关闭windows的命令行窗口,否则当前网页将会显示连接失败。
pycharm社区版
1、集成开发环境
2、官网下载地址:https://www.jetbrains.com/pycharm/download/#section=windows
pycharm的安装教程参照:
python学到死—第二讲 python基础、python3.6安装、pip工具的使用、pycharm简介、安装、配置
https://blog.csdn.net/yangyusir/article/details/114692760
二、本地数据的采集与操作
常用的本地文件格式
- TXT文件操作
- JSON文件操作
- CSV文件操作
- Excel文件
1.TXT文件操作
-
1.打开文件
-
2.文件操作(读写)
-
3.关闭文件
-
示例
'''
TXT文件操作
1.打开文件
file = open(filename, mode)
filename 文件名
mode 模式(打开文件的模式)
r read 只读模式 文件不存在,程序报错
w write 只写模式 文件不存在,程序会创建一个文件出来,程序正常
a append 追加模式 文件不存在,程序会创建一个文件出来,程序正常
2.文件操作(读写)
2.1 读操作
file.read() 读取全部文件
file.readline() 读取一行
file.readlines() 返回列表
2.2 写操作
file.write() 写,会覆盖原来的内容
3.关闭文件
file.close()
'''
# file = open('demo.txt', 'r') # 文件不存在报错FileNotFoundError: [Errno 2] No such file or directory: 'demo.txt'
file = open('demo.txt', 'a') # 文件不存在,程序会创建一个文件出来,程序正常
# print(file.readable()) # False 判断文件是否可读 当前是以追加写的方式打开文件所以不可读
file.close() # 关闭文件
file = open('demo.txt', 'a')
# print(file.readable()) # True 可读
# print(file.read()) #读取全部文件
# print(file.readline()) # 读取一行
# print(file.readlines()) # 读取多行
file.close()
file = open('demo.txt', 'w')
file.write('yangyu changes the world') # 会覆盖原来的内容
file.close()
file = open('demo.txt', 'a')
file.write('\nHe is a king of the world') # 追加方式写入
file.close()
2. with语句
- 包括了异常处理,自动调用文件关闭操作,推荐使用
with open(filename,mode) as f:
文件操作 - 练习
创建1个文件,文件中放入’人生苦短 我用Python’, 读取刚才创建的文件内容。 - 示例
# 上下文管理器
with open('test1.txt', 'w', encoding='utf-8') as f:
f.write("人生苦短 我用Python")
with open('test1.txt', 'r', encoding='utf-8') as f:
data = f.read()
print(data) # 人生苦短 我用Python
3. JSON文件操作
- Json是一种轻量级的数据交换格式。Json源自JavaScript语言,易于人类的阅读和编写,同时
也易于机器解析和生成,是目前应用最广泛的数据交换格式 - Json是跨语言,跨平台的,但只能对Python的基本数据类型做操作,对Python的类就无能为
力。JSON格式和Python中的字典非常像。但是,json的数据要求用双引号将字符串引起来,
并且不能有多余的逗号
{
“name”:“json”,
“age”:25,
“address”:{
“city”:“CSC”,
“postalCode”:2001
},
“phoneNumber”:{
“type”:“home”,
“number”:“292-666-999”
}
}
JSON文件写操作
写入文件 json.dump()
写入字符串变量 json.dumps()
JSON文件读操作
从文件读取 json.load()
从字符串变量读取 json.loads()
- 示例
'''
Json文件操作
写操作
json.dump 写入文件
json.dumps 写入字符串变量
读操作
json.load 从文件读取
json.loads 从字符串中读取
'''
import json
str1 = 'yangyu'
json.dump(str1, open('json.txt', 'w')) # 打开json.txt,显示"yangyu"
str2 = json.dumps(['yangyu', {'age': 18}])
print(str2) # ["yangyu", {"age": 18}]
p1 = json.load(open('json.txt', 'r'))
print(p1) # yangyu
p2 = json.loads(str2)
print(p2) # ['yangyu', {'age': 18}]
4. CSV文件操作
以纯文本形式存储的表格数据(以逗号作为分隔符),通常第一行为列名
-
CSV文件写操作
import csv
with open(“demo.csv”, “w”, newline="") as datacsv:
csvwriter = csv.writer(datacsv, dialect=(“excel”))
csvwriter.writerow([“A”, “B”, “C”, “D”]) -
CSV文件读操作
import csv
rf = open(‘demo.csv’,‘r’)
reader = csv.reader(rf)
print(next(reader))
for i in reader:
print(i) -
示例
'''
CSV文件操作
写操作
'''
import csv
# newline 新行,默认是None
with open('demo.csv', 'w', newline='') as data_csv:
# dialect 默认打开的方式是excel
csv_writer = csv.writer(data_csv, dialect='excel')
csv_writer.writerow(['a', 'b', 'c'])
csv_writer.writerow(['a1', 'b1', 'c1'])
'''
CSV文件操作
读操作
'''
f = open('demo.csv')
reader = csv.reader(f)
print(reader) # <_csv.reader object at 0x0000000002646128>
# 生成器
print(next(reader)) # ['a', 'b', 'c']
print(next(reader)) # ['a1', 'b1', 'c1']
# print(next(reader)) # 抛出异常StopIteration
# 用for循环打开不会抛出异常
for i in reader:
print(i)
'''
['a', 'b', 'c']
['a1', 'b1', 'c1']
'''
import pandas as pd
df = pd.read_csv("demo.csv")
print(df)
'''
a b c
0 a1 b1 c1
'''
print(df.head()) # 预览数据,默认前五行
'''
a b c
0 a1 b1 c1
'''
data = df.head()
data.to_csv('demo1.csv', index=False) # index默认是True,False就是去掉索引 打开demo1.csv,里面就没有0
5. Excel文件
Excel文件
Excel和CSV区别:
1.都可以Excel程序打开
2.Excel除了文本,数据也可以包含图表、样式等
3.CSV每条记录都存储为一行文本文件,每一条新行都表示一个新的数据记录
- Excel文件读操作
import xlrd
book = xlrd.open_workbook(‘1.xls’)
sheet = book.sheet_by_index(0) # 获取第一个sheet
print(sheet.nrows) # 获取行数
print(sheet.cell(1,1)) # 获取单元格的值,根据行列
print(sheet.row(1)) # 获取第一行
print(sheet.row_values(1,1)) # 获取第一行,跳过第一列
-示例
'''
excel文件操作
文件读取
'''
import xlrd # xl read
book = xlrd.open_workbook('1.xls')
# print(book) # <xlrd.book.Book object at 0x000000000285EA88>
# 获取第一个sheet
sheet = book.sheet_by_index(0)
# print(sheet) # Sheet 0:<Sheet1>
print(sheet.nrows) # 2
# 行 列 从零开始
print(sheet.cell(1, 0)) # text:'杨yu'
print(sheet.cell(0, 1)) # text:'age'
print(sheet.row(1)) # [text:'杨yu', number:18.0]
print(sheet.row(0)) # [text:'name', text:'age']
- Excel文件写操作
import xlwt
wbook = xlwt.Workbook()
wsheet = wbook.add_sheet(‘sheet1’)
wsheet.write(0, 0, label = ‘Row 0, Column 0’)
wsheet.write(0, 1, label = ‘Row 0, Column 1’)
wbook.save(‘output.xls’) - 示例
'''
excel文件操作
文件写入
'''
import xlwt # xl write
book1 = xlwt.Workbook()
w_sheet = book1.add_sheet('sheet1')
w_sheet.write(0, 0, label='name')
w_sheet.write(0, 1, label='age')
book1.save('demo2.xls')
'''
excel文件操作
文件读取
'''
import pandas as pd
data = pd.read_excel('demo2.xls')
print(data)
'''
Empty DataFrame
Columns: [name, age]
Index: []
'''
6.练习
爬取王者荣耀英雄头像
json请求地址:http://gamehelper.gm825.com/wzry/hero/list
'''
爬取王者荣耀英雄头像
json请求地址:http://gamehelper.gm825.com/wzry/hero/list
'''
import requests
import json
hero_url = 'http://gamehelper.gm825.com/wzry/hero/list'
def download():
# 下载头像
res = requests.get(hero_url).json()
# print(res)
# print(type(res)) # <class 'dict'>
for item in res['list']:
print(item)
hero_name = item['name']
hero_image = item['cover']
img = requests.get(hero_image).content
path = './%s.png' % hero_name
with open(path, 'wb') as f:
f.write(img)
if __name__ == '__main__':
download()