Scikit Learn 股票投资:p5

前言

本视频内容主要涉及到如何读取html文件并获取相应的数据,负债资产比率(D/E Ratio)

视频

视频出处

视频系列:Scikit-learn Machine Learning with Python and SKlearn

本视频出处:Scikit Learn Machine Learning for investing Tutorial with Python p. 5

优酷:Scikit Learn Machine Learning for investing Tutorial with Python p. 5

数据下载

下载地址:数据

百 度 云: 地址 密码: yyq8

内容

本教学视频还是主要涉及到数据清洗,还没有将数据应用在Machine Learning(机器学习)

上一次教程主要是遍历文件夹中所有股票的html文件。 而本次的教程主要是教大家如何从html中提取相应的数据, 以下是如何实现的代码:

#获取文件全路径
full_file_path = each_dir+'/'+file
#读取html文件内容
source = open(full_file_path, 'r').read()
#将文件内容以':</td><td class="yfnc_tabledata1">'开始进行分割,[1]表示分割后获取后面的第一个内容D/E的值
#然后再进行尾部分割,以'</td>'为中止
value = source.split(gather + ':</td><td class="yfnc_tabledata1">')[1].split('</td>')[0]

源代码

import pandas as pd
import os
import time
from datetime import datetime

#获取数据的具体路径
path = '../intraQuarter'

#定义一个function,默认值为Total Debt/Equity (mrq),以后可以更改为其他
def Key_Stats(gather="Total Debt/Equity (mrq)"):
    statspath = path+'/_KeyStats'

    #os模块提供的walk方法很强大,能够把给定的目录下的所有目录和文件遍历出来。
    #方法:os.walk(path),遍历path,返回一个对象,他的每个部分都是一个三元组,('目录x',[目录x下的目录list],目录x下面的文件)
    stock_list = [x[0] for x in os.walk(statspath)]   
    #stock_list[1:] -- 主要作用是跳过根目录intraQuarter
    for each_dir in stock_list[1:]:
        #os.listdir(each_dir):列出each_dir下的目录和文件
        each_file = os.listdir(each_dir)
        ticker = each_dir.split("\\")[1]
        if len(each_file) > 0:
            for file in each_file:
                #将文件名转换为时间序列
                date_stamp = datetime.strptime(file, '%Y%m%d%H%M%S.html')
                #转换为unix_time
                unix_time = time.mktime(date_stamp.timetuple())

                #获取文件全路径
                full_file_path = each_dir+'/'+file
                #读取html文件内容
                source = open(full_file_path, 'r').read()
                #将文件内容以':</td><td class="yfnc_tabledata1">'开始进行分割,[1]表示分割后获取后面的第一个内容D/E的值
                #然后再进行尾部分割,以'</td>'为中止
                value = source.split(gather + ':</td><td class="yfnc_tabledata1">')[1].split('</td>')[0]
                print(ticker + ":", value)
            time.sleep(15)

Key_Stats()

最后

虽然分c君_BingWong只是作为一名搬运工,连码农都称不上。 但制作代码中的注释、翻译和搬运都花了很多时间,请各位大侠高抬贵手,在转载时请注明出处。

阅读量: | 柯西君_BingWong | 2017-08-31