2017-04-11 5 views

Antwort

2

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 
+0

danke lieber viel –

+0

hast du eine Idee über datetime wie kann ich dieses Datum konvertieren [1] bedeuten 1min date 2 bedeuten 2 minutes so weiter –

+0

Ok, aber 'a1490154300' bedeutet was genau? Es ist Datum oder Zeit? – jezrael

0

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) 
+0

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

+0

ich will 1mins Daten nicht täglich –

0

@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 
+0

kann ich Minutenformat 1 um 9:15 Uhr so ​​ändern auf –

+0

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

+0

Korrektur zum zuvor angegebenen Code. df = pd.read_csv (URL, skiprows = 7, Header = Keine, Namen = Spalten) – dmdip

Verwandte Themen