我有一个名为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()
答案 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}