Scikit Learn 股票投资:p6

前言

本视频内容主要涉及到从html提取所需数据后如何保存为csv文件

视频

视频出处

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

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

哔哩哔哩:Scikit Learn Machine Learning for investing Tutorial with Python p. 6

数据下载

下载地址:数据

百 度 云: 地址 密码: yyq8

内容

上一个教程主要是说到如何从html提取Total Debt/Equity的数据,但提取数据后并没有以文件形式保存。 本教程主要是讲到如何保存提取后的股票数据。

源代码

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

path = '../intraQuarter'

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)]

    df = pd.DataFrame(columns = ['Date','Unix','Ticker','DE Ratio'])

    #stock_list[1:] -- skip the root folder
    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()
                try:
                    #读取html后并以gather + ':</td><td class="yfnc_tabledata1">作为split,提取第一位元素,然后将后面</td>作为结束
                    value = float(source.split(gather + ':</td><td class="yfnc_tabledata1">')[1].split('</td>')[0])
                    #将数据叠加并保存在字典里面, 因为是用字典形式,所以要将ignore_index设为True,忽略index
                    df = df.append({'Date':date_stamp,'Unix':unix_time,'Ticker':ticker,'DE Ratio':value}, ignore_index=True)
                except Exception as e:
                    pass

    #将gather="Total Debt/Equity (mrq)" 中的多余符号替换掉,用作文件名          
    save = gather.replace(' ','').replace('(','').replace(')','').replace('/','')+ (.csv')
    print(save)
    df.to_csv(save)

Key_Stats()

最后

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

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