[FIXED] Python – Pandas Dataframe – Aktiendaten – Angepasste Erstellung von Close-Attributvariablen

Ausgabe

Ich möchte eine Variable erstellen, um den angepassten Schlusskurs einfach zu verwenden, was für andere aus einem Wort bestehende Attribute (wie „Close“) einfach ist, aber nicht so einfach mit angepasstem Schlusskurs. Wie kann ich dasselbe tun wie hier unten mit der Spalte „Schließen“?

    end = dt.datetime.now()
    start = end - dt.timedelta(weeks=104)
    stocks_list = ['COST', 'NIO', 'AMD']
    df = pdr.get_data_yahoo(stocks_list, start, end)
    Close = df.Close
    Close.head()
    

Lösung

Worauf Sie sich hier beziehen, wird in der Dokumentation als Attributzugriff bezeichnet. Gegen Ende des Abschnitts zum Attributzugriff gibt es die folgende Warnung:

Sie können diesen Zugriff nur verwenden, wenn das Indexelement ein gültiger Python-Bezeichner ist, egs1 ist nicht zulässig. Siehe hier für eine Erläuterung gültiger Bezeichner .

Aus der verlinkten Dokumentation, was eine gültige Kennung ist:

Innerhalb des ASCII-Bereichs (U+0001..U+007F) sind die gültigen Zeichen für Bezeichner die gleichen wie in Python 2.x: die Groß- und Kleinbuchstaben A bis Z, der Unterstrich _ und, mit Ausnahme des ersten Zeichens, die Ziffern 0 bis 9.

Adjusted Closeist keine gültige Python-Kennung (aufgrund des Leerzeichens), daher ist es nicht als Attribut Ihres Datenrahmens zugänglich. Es gibt auch einige andere Ausnahmen in derselben Warnung, über die es sich zu lesen lohnt.

Ich würde einen Ansatz empfehlen, wie ihn BigBen in den Kommentaren vorschlägt, bei dem Sie einfach eine lokale Variable basierend auf dem Spaltennamen als Zeichenfolge zuweisen adjusted_close = df['Adjusted Close'].

Wenn Sie fest entschlossen sind, den Attributzugriff zu verwenden, können Sie den Namen Ihrer Spalte so manipulieren, dass er zu einem gültigen Python-Bezeichner wird, und dann können Sie den Attributzugriff verwenden. Aus Ihrem Beispiel kann dies erfolgen mit:

df.rename(columns = {"Adjusted Close" : "AdjustedClose"}, inplace = True)

Sobald Sie dies getan haben, können Sie mit auf den angepassten Schlusskurs zugreifen df.AdjustedClose. Ich empfehle diesen Ansatz nicht wirklich, aber es ist möglich.


Beantwortet von –
rnorris


Antwort geprüft von –
Cary Denson (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like