2017-10-21 149 views
1

我有一個類Asset需要一個名稱(應該用引號輸入)。 這將工作正常:Apple = Asset ('AAPL') 我想要將所有數據框列轉換爲資產對象。我試着下面的代碼,但不起作用:將列轉換爲類對象

for column in df.columns: 
    column = Asset (column) 

我也嘗試了與df.columns轉換成字符串列表相同的東西。

編輯 我的目標是爲與列具有相同名稱的每個列創建一個對象。這樣,對象就會自動擁有價格等欄目的內容。該類被定義爲:

class Asset: 
    def __init__(self, name): 
     self.name = name 
     self.price = df[name] 
     self.pct = self.price.pct_change() 
+0

它的工作原理好吧,它只是不做你想要的。 –

+0

請更新您的問題,並解釋您的意思是「它不工作」。 – Soviut

回答

3

重新分配columns只是意味着你正在改變的變量引用,這並不意味着原來的df.columns將被更新的對象。

我建議使用列表中理解和分配結果返回:

df.columns = [Asset(x) for x in df.columns] 

根據您的編輯,

asset = [Asset(x) for x in df.columns] 

或者,

asset = {x : Asset(x) for x in df.columns} 
+0

謝謝,但我認爲我不清楚。你會看到編輯? – st19297

+0

@ st19297爲什麼'assets = [[df.columns中的x的資產(x)]'工作? –

+0

它會工作,但給我一個對象列表。我怎樣才能在名稱空間而不是列表中的單個對象?對不起,我是一個編碼初學者 – st19297