[PYTHON] Speichern Sie TOPIX-Zeitreihen im Pickle-, CSV- und Excel-Format

Was ist zu tun

Ich habe den vorherigen Beitrag geschrieben, um die TOPIX-Zeitreihen anzuzeigen Speichern Sie es in verschiedenen Formaten, um es später einfach zu verarbeiten.

Code zum Parsen von Yahoo Finance HTML

Das Gleiche wie vorher. Ich habe jedoch einen Funktionsaufruf namens "savedataAs irgendwie (Dateiname, Daten)" eingegeben.

#!/usr/bin/env python
#-*- coding: utf-8 -*-
import pylab
import urllib2
import lxml
import lxml.html
import re

dateFr = {"year": 2000, "month":1, "day":1}
dateTo = {"year": 2013, "month":11, "day": 1}

data = []
for page in range(1, 30):
    print page
    url = "http://info.finance.yahoo.co.jp/history/?code=998405.T&sy=%d&sm=%d&sd=%d&ey=%d&em=%d&ed=%d&tm=d&p=%d"
    url = url % (dateFr["year"], dateFr["month"], dateFr["day"], dateTo["year"], dateFr["month"], dateFr["day"], page)

    html = urllib2.urlopen(url).read()
    root = lxml.html.fromstring(html)
    table = root.xpath(' //*[contains(concat(" ",normalize-space(@class)," "), " boardFin ")]')[0]

    for tr in table.xpath("descendant::tr"):
        tmp = [td.text for td in tr.xpath("descendant::td")]
        if len(tmp) != 5:
            continue
        begin = float(tmp[1].replace(",", ""))
        high  = float(tmp[2].replace(",", ""))
        low   = float(tmp[3].replace(",", ""))
        end   = float(tmp[4].replace(",", ""))
        data.append([low, high, low, high])
savedataAsPickle('topix.pickle', data)
savedataAsCSV('topix.csv', data)
savedataAsExcel('topix.xlsx', data)

Code zum Speichern

pickle Formate in der Standard-Python-Bibliothek

def savedata(filename, data):
    pickle.dump(data, open(filename, "w"))

csv Abkürzung für Comma Separated Values. Textformat.

def savedata(filename, data):
    import csv
    csvobj = csv.writer(open(filename, "w"))
    csvobj.writerows(data)

Excel-Format

Speichern Sie in einem Format, das von Excel gelesen werden kann

def savedata(filename, data):
    import openpyxl.workbook
    import openpyxl.cell
 
    wb = openpyxl.workbook.Workbook()
    ws = wb.worksheets[0]
    ws.title = "TOPIX"
    for idat, dat in enumerate(data):
        col = openpyxl.cell.get_column_letter(idat + 1) # from 1, 2, ... to A, B, ...
        for irow, d in enumerate(dat):
            ws.cell('%s%s'%(col, irow + 1)).value = d
    wb.save(filename)

Recommended Posts

Speichern Sie TOPIX-Zeitreihen im Pickle-, CSV- und Excel-Format
TOPIX-Zeitreihen anzeigen
Sparen Sie Zeit mit SQLAlchemy
[Django] Importieren und exportieren Sie DB-Tabellen im Excel- oder CSV-Format
Zeichnen Sie die CSV von Zeitreihendaten mit einem Unixtime-Wert in Python (matplotlib).
Datum und Uhrzeit im angegebenen Format abrufen
Exportieren Sie Amazon RDS-Tabellen im CSV-Format
Bequeme Zeitreihenaggregation mit TimeGrouper von Pandas
Holen Sie sich mit Python Zeitreihendaten von k-db.com
Konvertieren Sie UTF-8-CSV-Dateien in Excel
Lesen von Zeitreihendaten in PyTorch
Speichern Sie Pandas-Daten mit Cloud Pak for Data (Watson Studio) im Excel-Format in Datenbeständen.