Imports Module anschließen:Es kann keine Datenrahmen auch nach folgenden wird ein Beispiel
import Quandl
import pandas as pd
from pandas.tools.plotting import df_unique
Lese api-Schlüssel:
api_key = open('quandlapikey.txt','r').read()
Derzeit ist die Funktion liest eine CSV-Datei, die Codes zu bekommen aber ich ändern planen dies zu sqllite ..
def stock_list():
#stocks = pd.read_csv('TID.csv'.rstrip())
stocks = open('TID.csv').readlines()
return stocks[0:]
Erhalten Sie Lagercodes von quandl das funktioniert ein Vergnügen.
Diese Anweisung verursacht die Probleme aus irgendeinem Grund, während der Schleife keine zusätzlichen Aktienkurse hinzugefügt werden können.
Dies ist die Ausgabe von den Print-Anweisungen und Fehler von der Join.
Result:
LSE/VOD
Date
2016-04-14 226.80
2016-04-15 229.75
<ETC for all stocks>
Traceback (most recent call last):
File "H:\Workarea\DataB\SkyDriveP\OneDrive\PyProjects\Learning\21 myPprojects\stockPrices.py", line 49, in <module>
getStockValues()
File "H:\Workarea\DataB\SkyDriveP\OneDrive\PyProjects\Learning\21 myPprojects\stockPrices.py", line 43, in getStockValues
main_df = main_df.join(df)
File "H:\APPS\Python35-32\lib\site-packages\pandas\core\generic.py", line 2669, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'Series' object has no attribute 'join'
Weitere Tests zeigen, dass das Problem mit dem Umfang der Pandas Daten zu sein scheint wider dies verursacht und Ausgabe:
main_df = pd.DataFrame()
for abbrv in stocks:
query = "LSE/" + str(abbrv).strip()
df = Quandl.get(query, authtoken=api_key,start_date='2016-03-05', end_date='2016-04-10')
df = df['Price']
df.columns = [abbrv]
#causes error
if main_df.empty:
main_df = df
else:
main_df = main_df.join(df)
aber dies kein Fehler nur ein Datensatz verursacht jedoch zurück:
for abbrv in stocks:
main_df = pd.DataFrame()
query = "LSE/" + str(abbrv).strip()
df = Quandl.get(query, authtoken=api_key,start_date='2016-03-05', end_date='2016-04-10')
df = df['Price']
df.columns = [abbrv]
if main_df.empty:
main_df = df
else:
main_df = main_df.join(df)
Bitte geben Sie ein reproduzierbares Beispiel an. Außerdem gibt die Fehlermeldung an, dass "main_df" eine Serie ist und kein DataFrame – joris
Code oben sollte als Ursache für den Fehler funktionieren. Nach deinem Kommentar habe ich den Code jedoch geändert und es scheint ein Problem mit dem Umfang zu sein. –
Sorry, das hat nicht funktioniert, ich versuche jetzt einen anderen Weg, um den gleichen Dank zu erreichen. –