2017-08-22 1 views
0

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: [] 
+0

'metrics = pd.DataFrame()' - wo denkst du, dass du Daten (Zeilen) zu diesem DataFrame hinzufügst? –

+0

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

Antwort

0

Umschalten der Datenrahmen zu einer Reihe gearbeitet.

Verwandte Themen