Problem z kawałkiem kodu w Pythonie.

0

Dzień Dobry,może ktoś z was zetknął się z podobnym lub identycznym problemem co mój . Ten oto poniżej kod za żadne skarby nie chce się uruchomić , co robić ? . Używam pythona 3


import pandas as pd
import pandas_datareader.data as web

pdata = pd.Panel(dict((stk, web.get_data_yahoo(stk, '1/1/2009', '6/1/2012'))
                                    for stk in ['AAPL', 'GOOG', 'MSFT', 'DELL']))

błąd który wyskakuje:
KeyError: 'Date'

0

Próbowałem także przypisać te daty w innych formatach , ale nic z tego

0

Tak korzystałem z tego , z datą jest raczej wszystko w porządku . Błąd mi wyświetla tutaj

----> 5                          for stk in ['AAPL', 'GOOG', 'MSFT','DELL']))
0

Acha konstruktor dict - a, nie chce takiej listy parametrów:

class dict(object)
 |  dict() -> new empty dictionary
 |  dict(mapping) -> new dictionary initialized from a mapping object's
 |      (key, value) pairs
 |  dict(iterable) -> new dictionary initialized as if via:
 |      d = {}
 |      for k, v in iterable:
 |          d[k] = v
 |  dict(**kwargs) -> new dictionary initialized with the name=value pairs
 |      in the keyword argument list.  For example:  dict(one=1, two=2)
0
lion137 napisał(a):

Acha konstruktor dict - a, nie chce takiej listy parametrów:

class dict(object)
 |  dict() -> new empty dictionary
 |  dict(mapping) -> new dictionary initialized from a mapping object's
 |      (key, value) pairs
 |  dict(iterable) -> new dictionary initialized as if via:
 |      d = {}
 |      for k, v in iterable:
 |          d[k] = v
 |  dict(**kwargs) -> new dictionary initialized with the name=value pairs
 |      in the keyword argument list.  For example:  dict(one=1, two=2)

ugryzłem to w ten sposób , dużo pisanie niby efekt taki sam , ale kod długo dłuższy od tego co napisałem wyżej

all_data = {}
for ticker in ['AAPL', 'IBM', 'MSFT', 'GOOG']:
     all_data[stk] = web.get_data_yahoo(stk, '1/1/2009', '6/1/2012')
price = DataFrame({tic: data['Adj Close']
                   for tic, data in all_data.items()})
volume = DataFrame({tic: data['Volume']
                    for tic, data in all_data.items()})
close = DataFrame({tic: data['Close']
                    for tic, data in all_data.items()})
low = DataFrame({tic: data['Low']
                    for tic, data in all_data.items()})
high = DataFrame({tic: data['High']
                    for tic, data in all_data.items()})
vopen = DataFrame({tic: data['Open']
                    for tic, data in all_data.items()})
0

Bardziej mnie ciekawi z jakiego powodu pojawia się błąd

Key Error : Date

W Pythonie wersji 2 to działa , może błąd inna metoda jest w nowszej wersji ...

0

próbowałem to wszystko zamknąć w jednej pętli też nic z tego . Kurde nie wiem jak to ugryźć ..

0

Takie coś działa?

import pandas as pd
import pandas_datareader.data as web
pdata = pd.Panel({stk: web.get_data_yahoo(stk, '1/1/2009', '6/1/2012') for stk in ['AAPL', 'GOOG', 'MSFT', 'DELL']})
0
import datetime
import pandas as pd
import pandas_datareader.data as web

start='1/1/2009'
end='6/1/2012'
pdata = pd.Panel({stk: web.get_data_yahoo(stk, start, end) for stk in ['AAPL', 'GOOG', 'MSFT', 'DELL']})

Bez DELL w liście wyskakuje

TypeError: Panel() takes no arguments
0
import datetime

from pandas_datareader import DataReader

if __name__ == '__main__':

    for label in ['AAPL', 'IBM', 'MSFT', 'GOOG', "DELL"]:
        data = DataReader(label, "yahoo",
                          datetime.datetime(2009, 1, 1),
                          datetime.datetime.now())

        print(data)

Wysypywało Ci się na "DELL", bo w podanych przez Ciebie latach nie było danych dla "DELL"-a. Co chcesz dalej zrobić z tymi danymi?

1 użytkowników online, w tym zalogowanych: 0, gości: 1