So benennen Sie die Spalten, die in DataFrame mit pandas in Python
Habe ich fünf Aktienportfolios, die habe ich importiert aus Yahoo! Finanz-und müssen, erstellen Sie einen DataFrame mit den schlusskursen für 2016 aller Aktien. Jedoch bin ich kämpfen, um Sie zu beschriften Sie die Spalten mit den entsprechenden Lager-Namen.
import pandas.io.data as web
import pandas_datareader.data as web
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import datetime
start = datetime.datetime(2016, 1, 1)
end = datetime.datetime(2016, 12, 31)
NFLX = web.DataReader("NFLX", 'yahoo', start, end)
AAPL = web.DataReader("AAPL", 'yahoo', start, end)
GOOGL = web.DataReader("GOOGL", 'yahoo', start, end)
FB = web.DataReader("FB", 'yahoo', start, end)
TSLA = web.DataReader("TSLA", 'yahoo', start, end)
df_NFLX = pd.DataFrame(NFLX['Close'])
df_AAPL = pd.DataFrame(AAPL['Close'])
df_GOOGL = pd.DataFrame(GOOGL['Close'])
df_FB = pd.DataFrame(FB['Close'])
df_TSLA = pd.DataFrame(TSLA['Close'])
frames = [df_NFLX, df_AAPL, df_GOOGL, df_FB, df_TSLA]
result = pd.concat(frames, axis = 1)
result = result.rename(columns = {'Two':'N'})
result
Mein code erzeugt diese - und ich will Titel jeder Spalte entsprechend.
Out[15]:
Close Close Close Close Close
Date
2016-01-04 109.959999 105.349998 759.440002 102.220001 223.410004
2016-01-05 107.660004 102.709999 761.530029 102.730003 223.429993
2016-01-06 117.680000 100.699997 759.330017 102.970001 219.039993
2016-01-07 114.559998 96.449997 741.000000 97.919998 215.649994
2016-01-08 111.389999 96.959999 730.909973 97.330002 211.000000
2016-01-11 114.970001 98.529999 733.070007 97.510002 207.850006
2016-01-12 116.580002 99.959999 745.340027 99.370003 209.970001
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer einfachen Art und Weise zu Flicken, den code, den Sie geschrieben haben ist, geben Sie einfach eine Liste der Namen, die
df.columns
.Jedoch gibt es Möglichkeiten, um große Teile des Codes übersichtlicher die können Sie auch angeben, die Aktie Namen als Spaltennamen sauber. Ich würde zum Anfang zurück gehen und (nach der Definition
start
undend
) starten Sie, indem Sie eine Liste der Aktien-Ticker, die Sie abholen wollen.Dann können Sie konstruieren, werden alle Daten-frames in einer Schleife in irgendeiner Form. Wenn Sie möchten, dass nur die
Close
Spalte, die Sie extrahieren können, die Spalte sofort, und in der Tat können Sie einedict
alle diese Spalten, und dann konstruieren Sie eineDataFrame
direkt vondict
.Wäre eine alternative, um alle Bestandsdaten in ein
Panel
, das wäre nützlich, wenn Sie möchten, könnte die Arbeit mit den anderen Spalten.Dann können Sie extrahieren Sie die
Close
Figuren mitBeachten Sie, dass es die richtige Spalte Etiketten automatisch.
Umbenennen der Spalten in der erstellten Tabelle, die Sie ändern können:
zu diesem: