python 数据分析挖掘
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
1.数据类型读取数据文件时,通过 Pandas 完成,示例通过import
import pandas as pd pd.read_csv("test.csv")读取csv数据)
2.HDF 两种存储架构:fixed 和 table 默认 fixed 这个读取速度快,而table支持查询操作
当存储读取HDF5时 需要table格式时 后面增加, format='table'
例如:df2.to_hdf('test.h5', key='df2', format='table')
pd.read_hdf('test.h5', key='df2', where=['index < 5'])
3.字符串转json import json obj = json.loads(obj)
4.大概主要参数
path:路径不仅仅可以读取本地文件,还支持远程 URL 链接。
sep:支持按特定字符分割。
header:可以指定某一行为列名,默认是第一行。
names:自定义列名。
skiprows:指定忽略某些行。
na_values:对空值进行指定替换操作。
parse_dates:尝试将数据解析为日期。
nrows:读取指定行数的数据。
chunksize:指定分块读取数据大小。
encoding:指定文件编码。
使用案例
pd.read_csv("test.csv", skiprows=range(1, 5)) # 忽略前 4 行的数据
chunker = pd.read_csv("test.csv", chunksize=2) chunker.get_chunk()迭代返回分块数据内容
5.数据库连接
postgresql 安装 psycopg2模块 mysql 安装pymysql模块 sqllite py标准库 sqlite3
sqlite实例( 如果目录下已存在 SQLite 数据库,执行删除避免重复运行报错if os.path.exists('test.sqlite'): os.remove('test.sqlite')
sql_con = sqlite3.connect('test.sqlite') # 连接数据库
# 向数据库中写入示例数据,表名为 test_table
df.to_sql(name='test_table', con=sql_con, index=None)sql_con.close() # 关闭连接
增删改查demo改变sql即可
pd.read_sql("SELECT A FROM test_table", sql_con) # 查询并输出 A 列数据
芒果MongoDB 数据库
!pip install pymongo dnspython # 安装 PyMongo
MongoClient('localhost', 27017)#连接本地
增删改查语法
inserrt_one()增加一条数据
insert_many()增加多条数据
find_one()查询第一个文档
find()返回一个cursor对象
db.users.update_one()更新一条
db.users.update_many()更新多条
db.users.delete_one()删除条件
数据解析界面解析
http请求:= requests.get()
1.网页表格数据解析 通过read_html() 例如 tables = pd.read_html(url, encoding='utf-8')
2.xpath解析节点解析 通过xpath('节点')(表达式后加上text()返回文本, @sec获取属性)
节点(nodename 此节点下所有子节点,/ 从根节点选取 //从匹配选择的当前节点选择文档中的节点
.选取当前节点 ..选取当前节点父节点
例如tree.xpath('//div[@class="companies"]/div[2]/h2/text()')
3.通过css selector解析 例如
from bs4 import BeautifulSoup
soup = BeautifulSoup(example, features="lxml") # 加载 HTML
for link in soup.select("html body div a[href]"): print(link.get('href'))
4.Scrapy 架构解析
结果封装为 Scrapy 内部的一个 response
Scrapy 内置 CSS Selector
extract
extract_first()
任何标签的任意属性都可以用 attr()
response.css('div#images p::text').extract_first(default='默认值')
response.css('div#images a::attr(href)').extract()
Scrapy 内置 XPath
response.xpath('//*[@id="images"]/a/@href').extract()
需要对文本进行处理 re() 替代 extract
例如不要开始name:和结尾的空格
response.css('div#images a::text').re('Name: (.+) ').
5.Scrapy 爬虫框架基础实践
1.创建项目的方法是使用 scrapy startproject
2.实现 Item例如(
import scrapy
class ShiyanlouCourseItem(scrapy.Item):
"""定义 Item 非常简单,只需要继承 scrapy.Item 类,将每个要爬取的数据声明scrapy.Field()。下面的代码是我们每个课程要爬取的 3 个数据。
"""
name = scrapy.Field() # 课程名称
description = scrapy.Field() # 课程介绍
image = scrapy.Field() # 课程图片)
3.创建爬虫scrapy 的 genspider 命令可以快速初始化一个爬虫模版例如 name 这个爬虫的名称,domain 指定要爬取的网站。scrapy genspider 网址
allowed_domains属性是一个列表或者字符串
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |