Ich habe die folgende Klasse und die print-Anweisung gibt einen leeren Datenrahmen zurück, obwohl ich sicher bin, dass meine Methode get_percent_change die Werte zurückgibt. Ich habe sogar versucht, nur Test drei zuzuweisen. Immer noch, leerer Datenrahmen.DataFrame wird keinen Wert zugewiesen
Hat es etwas damit zu tun, dass es in einer Klasse ist? In der Init-Methode? Ich habe versucht, auch self.metrics zu verwenden. Hier
class options_metrics:
def __init__(self, calls, puts):
self.calls, self.puts = calls, puts
self.calls = self.calls.drop(["Type"])
self.puts = self.puts.drop(["Type"])
metrics = pd.DataFrame()
metrics['Perc_Chg_Vol_Call'], metrics['Perc_Chg_Open_Int_Call'] = self.get_percent_change(self.calls)
metrics['Test'] = 3
print(metrics)
input()
def get_percent_change(self, option_df):
perc_changes = option_df.pct_change(axis=1)
print(perc_changes)
return (perc_changes.ix['Vol',1], perc_changes.ix['Open_Int',1])
ist die Ausgabe:
Empty DataFrame
Columns: [Perc_Chg_Vol_Call, Perc_Chg_Open_Int_Call, Test]
Index: []
'metrics = pd.DataFrame()' - wo denkst du, dass du Daten (Zeilen) zu diesem DataFrame hinzufügst? –
Ich hätte schwören können, dass ich Werte auf einen leeren Datenrahmen wie diesen gesetzt habe, aber ich denke, vielleicht hatte es schon Zeilen oder die Zeilen wurden vor dem Speichern korrekt durch Pandas initiiert. Ich habe es auf eine Serie geschaltet und das wird funktionieren. Vielen Dank. – mobone