Wenn Sie verschiedene Bibliotheken mit Python verwenden, dachte ich: "Es ist praktisch, weil Sie mit ein wenig Code ein kleines Ding machen und mit ein paar 5 Schritten ein kleines Skript erstellen können." Es ist also nur eine Liste von Python und anderen Befehlen. Ich kann mir das einfallen lassen, aber ich werde unregelmäßig ein 10-Schritte-Skript veröffentlichen.
Als ** 3rd ** möchte ich die Daten mit Datenleser abrufen und das Schreiben an csv senden. </ font>
Ich denke, dass es viele Fälle gibt, in denen CSV- und Excel-Daten intern weitergegeben werden, und selbst wenn sie im Internet veröffentlicht werden, sind sie mit JSON usw. in einer Reihe und CSV wird veröffentlicht.
Die zu erfassenden Daten stammen vom 1. Januar 2016 von Fred's Nikkei 225. Diese Daten werden im Pandas-Datenrahmen gespeichert und in csv geschrieben.
Als Ergänzung zeichnen Sie schließlich mit der Plotfunktion.
【Umgebung】 Linux: debian10 python: 3.7.3 pandas: 1.0.3 pandas-datareader: 0.8.1
Das Abrufen des Datenlesers für die Datenerfassung mit Nikkei 225 hat die folgende Syntax. pdr.DataReader('NIKKEI225' ,'fred' ,start)
Wenn Sie an csv schreiben, schreiben Sie mit Pandas. Die Syntax lautet Datenrahmen .to_csv ('Dateiname schreiben.csv')
Ich habe den Code in Jupiter ausgeführt.
datareader
#Holen Sie sich Nikkei225-Daten von fred mit dem Datenleser und schreiben Sie in csv
#outfile = ('./nikkei225_20200428.csv')
import pandas as pd
from pandas_datareader import data, wb
import datetime
import matplotlib.pyplot as plt
#Datenerfassung / -speicherung im Datenrahmen
start = datetime.datetime(2016, 1 ,1)
df_nikkei225 = pdr.DataReader('NIKKEI225' ,'fred' ,start)
#Schreiben Sie an csv
df_nikkei225.to_csv('./nikkei225_20200428.csv')
Oben wird beim Speichern des Skripts im Datenrahmen das zu erfassende Startdatum in der ersten Zeile angegeben, der Nikkei 225 wird von fred in der zweiten Zeile ab dem angegebenen Datum in der ersten Zeile erfasst und als Datenrahmen beschrieben.
start = datetime.datetime(2016, 1 ,1) df_nikkei225 = pdr.DataReader('NIKKEI225' ,'fred' ,start)
Der Name des Datenrahmens ist "df_nikkei225", aber in Wirklichkeit ist alles in Ordnung.
Die Ausgabe an csv wurde als "nikkei225_20200428.csv" in das aktuelle Verzeichnis ausgegeben.
Werfen wir einen Blick auf die erfassten Daten. "Df_nikkei225" ist der im vorherigen Code verwendete Datenrahmen.
Datenrahmen
df_nikkei225
#Inhalt des gespeicherten Datenrahmens
NIKKEI225
DATE
2016-01-01 NaN
2016-01-04 18450.98
2016-01-05 18374.00
2016-01-06 18191.32
2016-01-07 17767.34
... ...
2020-04-22 19137.95
2020-04-23 19429.44
2020-04-24 19262.00
2020-04-27 19783.22
2020-04-28 19771.19
1128 rows × 1 columns
Als [Ergänzung] werde ich ein Diagramm zeichnen und es als JPG ausgeben. Der einfachste Weg, die obigen Daten zu zeichnen, besteht in zwei Codezeilen. Zuerst habe ich matplotlib mit "import matplotlib.pyplot as plt" importiert.
In diesem Zustand können Sie mit df.plot () zeichnen, wenn der Datenrahmen "data frame name.plot ()" und "df" ist. </ font> Wenn Sie beispielsweise ein Diagramm als JPG ausgeben, plt.savefig ("Name der Ausgabedatei.jpg ") </ font>
plot
#Grafikzeichnung / Ausgabe
df_nikkei225.plot()
plt.savefig("nikkei225_20200428.jpg ")
Dateninformationen
df_nikkei225.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 1128 entries, 2016-01-01 to 2020-04-28
Data columns (total 1 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 NIKKEI225 1056 non-null float64
dtypes: float64(1)
memory usage: 17.6 KB
df_nikkei225.isnull().sum()
NIKKEI225 72
dtype: int64
df_nikkei225.head()
DATE
2016-01-01 NaN
2016-01-04 18450.98
2016-01-05 18374.00
2016-01-06 18191.32
2016-01-07 17767.34
Es gibt keine Daten an Tagen, an denen keine Transaktionen vorliegen. Da die erfassten Daten jedoch so dargestellt werden, wie sie sind, wird das tatsächliche Diagramm meines Erachtens vorerst auf fehlende Werte hin verarbeitet. Ich werde darauf in einem separaten Artikel eingehen.
** Oben war es Datenerfassung und CSV-Konvertierung mit Datenleser. ** ** **
Recommended Posts