Wie konvertiert man diese HTML-Tabelle zu Pandas Dataframe?Google Finanzen Pandas lesen Tabelle zu Pandas Datenrahmen
https://www.google.com/finance/getprices?q=HINDALCO&i=60&p=15d&f=d,o,h,l,c,v
Beispieldaten:
Wie konvertiert man diese HTML-Tabelle zu Pandas Dataframe?Google Finanzen Pandas lesen Tabelle zu Pandas Datenrahmen
https://www.google.com/finance/getprices?q=HINDALCO&i=60&p=15d&f=d,o,h,l,c,v
Beispieldaten:
Sie read_csv
mit Parametern skiprows
und names
für neue Spaltennamen verwenden können:
url = 'https://www.google.com/finance/getprices?q=HINDALCO&i=60&p=15d&f=d,o,h,l,c,v'
df = pd.read_csv(url, skiprows=[0,1,2,3,5,6]).rename(columns={'COLUMNS=DATE':'DATE'})
print (df.head())
DATE CLOSE HIGH LOW OPEN VOLUME
0 a1490154300 194.80 194.80 194.80 194.80 2600
1 1 193.55 194.70 193.00 194.15 339142
2 2 193.80 193.95 193.55 193.60 242687
3 3 194.20 194.40 193.80 193.90 119874
4 4 193.80 194.20 193.80 194.20 121355
danke lieber viel –
hast du eine Idee über datetime wie kann ich dieses Datum konvertieren [1] bedeuten 1min date 2 bedeuten 2 minutes so weiter –
Ok, aber 'a1490154300' bedeutet was genau? Es ist Datum oder Zeit? – jezrael
Wenn Sie sich nicht besonders über Ihre bekommen Daten nur von Google, das wird wi funktionieren Yahoo:
import pandas as pd
import pandas_datareader.data as web
from datetime import datetime
start = datetime(2014, 6, 2)
end = datetime(2014, 9, 5)
hindalco = web.DataReader('HINDALCO.NS', 'yahoo', start, end)
In [15]: hindalco.head(5)
Out[15]:
Open High Low Close Volume Adj Close
Date
2014-06-02 147.3 151.15 146.35 150.05 13844600 146.2012
2014-06-03 150.7 155.70 149.35 155.20 23276100 151.2191
2014-06-04 156.0 161.75 155.20 160.70 15948200 156.5780
2014-06-05 160.6 171.00 159.95 169.85 20296900 165.4934
2014-06-06 172.0 172.10 165.30 169.25 13769100 164.9087
Sie müssen pandas-Datenreader installieren.
sudo -H pip install pandas-datareader (ubuntu)
pip install pandas-datareader (windows)
Ich habe versucht, 'HINDALCO' als Buchungskreis und Google anstelle von Yahoo, aber das hat nicht funktioniert. Allerdings haben US-Aktien wie Apple mit Google gearbeitet: apple = web.DataReader ('AAPL', 'google', Start, Ende) – dmdip
ich will 1mins Daten nicht täglich –
@jezrael] hat Ihre Frage für eine Minute Daten für Hindalco beantwortet. Hier ist mehr oder weniger die gleiche Antwort, gezwickt ein bisschen:
import pandas as pd
period = 60 #one minute
days = 2 # 2 days of data
ticker = 'HINDALCO'
url = 'http://www.google.com/finance/getprices?i={}&p={}d&f=d,o,h,l,c,v&df=cpct&q={}'.format(period, days, ticker)
cols = ['minute', 'open', 'high', 'low', 'close', 'volume']
df = pd.read_csv(url, skiprows=8, header=None, names=cols)
df.head()
Ausgang:
minute open high low close volume
0 1 194.35 194.35 193.80 193.85 25785
1 2 194.15 194.40 194.00 194.35 64580
2 3 193.95 194.25 193.85 194.15 42980
3 4 193.80 193.95 193.75 193.90 33936
4 5 193.90 193.90 193.60 193.80 57088
kann ich Minutenformat 1 um 9:15 Uhr so ändern auf –
Ja, Sie können. Sie müssen den Feldwert verwenden, der als ** a1490154300 ** angezeigt wird. Grundsätzlich ist 1490154300 die Startzeit der Daten, gemessen als die Anzahl der Sekunden ab 1. Januar 1970 5.30 Uhr IST. (Eigentlich 0000 UTC). Fügen Sie diesem Feldwert die Anzahl der Minuten hinzu, die in dieser Spalte erscheinen. – dmdip
Korrektur zum zuvor angegebenen Code. df = pd.read_csv (URL, skiprows = 7, Header = Keine, Namen = Spalten) – dmdip
BTW, Pandas kommt mit einem Datenleser für [Google Finance] (http: //pandas-datareader.readthedocs .io/de/neueste/remote_data.html # remote-data-google). Vielleicht macht es den Job? – greole