Advertisement

Python数据分析与挖掘

阅读量:

一、数据挖掘概述
1.数据分析
在这里插入图片描述

二、数据挖掘方式
例:图像识别
1.数据挖掘场景:
在这里插入图片描述
2.数据挖掘常用库
在这里插入图片描述

三、案例操作
1.需求分析
版本:V1.0
需求:预测模型----预测股票的波动趋势
功能描述:
某网站股票数据爬取
数据指标分析
数据可视化显示
数据趋势预估

2.pandas库
在这里插入图片描述
1)数据获取
获取方案:
爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息
requests库是实现数据获取

2)数据处理
对于数据科学家,无论数据分析还是数据挖掘来说,Pandas是一个非常重要的Python包。
Pandas提供了很多方法,使得数据处理非常简单,同时在数据处理速度上也做了很多优化,使得和Python内置方法相比时有了很大的优势。

3)可视化
在这里插入图片描述

四、数据分析代码实现

复制代码
    """
    数据分析操作流程:
    1- 获取数据
    2- 存储数据
    3- 洗数据--数据过滤
    4- 算法介入
    5- 结果展示
    6- 分析汇总
    """
    # 1- 获取数据:1.本地获取2.网上获取
    import csv
    import threading
    import time
    import pandas
    import requests
    
    
    # 创建数据存储文件csv
    fo = open("股票数据.csv", mode='w', encoding='utf-8', newline='')
    # 1- 写入csv列名
    csv_write = csv.DictWriter(fo, fieldnames=["股票名称", "股票代码", "当前价格", "成交量"])
    # 写入
    csv_write.writeheader()
    
    
    urlList = [
    'https://xueqiu.com/service/v5/stock/screener/quote/list?page={}&size=30&order=desc&orderby=percent&order_by=percent&market=CN&type=sh_sz&_={}'.format(page, round(time.time() * 1000)) for page in range(1, 2)
    ]
    
    
    def request_data(url):
    # 一定要有请求头--网站有防扒操作
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'
    }
    res = requests.get(url, headers=headers)  # 发请求
    # print(res.json())
    dataList = res.json()['data']['list']
    for one in dataList:
        # 1- 股票名
        # 2- 股票代码
        # 3- 当前价位
        # 4-成交量
        dictTmp = {}
        dictTmp['股票名称'] = one['name']
        dictTmp['股票代码'] = one['symbol']
        dictTmp['当前价格'] = one['current']
        dictTmp['成交量'] = one['volume']
        print(dictTmp)
        # 写进去  数据库  csv Excel
        csv_write.writerow(dictTmp)
    
    
    def request_thread():
    threads = []
    for url in urlList:
        threads.append(threading.Thread(target=request_data, args=(url, )))
    # 启动线程
    for one in threads:
        one.start()
        time.sleep(1)
    # join
    for one in threads:
        one.join()
    
    
    request_data(urlList[0])
    start_time = time.time()  # 计时开始
    request_thread()
    fo.close()  # 关闭文件
    end_time = time.time()  # 结束计时
    print("耗时>>>", end_time - start_time)
    
    # 4- 数据处理,不同场景需要不同数据--再过滤数据
    data_df = pandas.read_csv("股票数据.csv")
    df = data_df.dropna()  # 删除处理缺失的行
    df1 = df[["股票名称", "当前价格"]]
    df2 = df1.iloc[:10]  # 取前面
    # print(type(df1))
    # print(df2)
    
    # 5- 算法分析:引入算法--行业内部--经验的操作
    # 6- 展示效果
    import matplotlib.pyplot as plt
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['axes.unicode_minus'] = False
    
    # 准备数据
    # 绘制图形
    plt.bar(df2['股票名称'].values, height=df2['当前价格'].values, label='股票当前价')
    for a, b in zip(df2['股票名称'].values, df2['当前价格'].values):
    print(a, b)
    plt.text(a, b+3, b, horizontalalignment='center', verticalalignment='bottom', fontsize=10, rotation=90)
    
    # 1-
    plt.legend()  # 设置生效
    plt.xticks(rotation=90)  # 旋转90
    plt.xlabel('股票名称')  # 设置x标签值
    plt.ylabel('当前价格')  # 设置y标签值
    plt.show()  # 展示
    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

股票数据.csv
在这里插入图片描述

全部评论 (0)

还没有任何评论哟~