将列转换为类对象

时间:2017-10-21 22:38:56

标签: python class

我有一个名为Asset的班级(应使用引号输入)。 这样可以正常工作:Apple = Asset ('AAPL') 我想将所有dataframe列转换为Asset对象。我尝试以下代码但不起作用:

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()

1 个答案:

答案 0 :(得分: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}