Python 将列转换为类对象

Python 将列转换为类对象,python,class,Python,Class,我有一个类Asset,它有一个名称(应该用引号输入)。 这很好:Apple=Asset('AAPL') 我想将所有数据帧列转换为资产对象。我正在尝试以下代码,但不起作用: for column in df.columns: column = Asset (column) 我还尝试了将df.columns转换为字符串列表的方法 编辑 我的目标是为每一列创建一个与该列同名的对象。这样,对象将自动拥有列的内容,例如price。该类定义为: class Asset: def __ini

我有一个类
Asset
,它有一个名称(应该用引号输入)。 这很好:
Apple=Asset('AAPL')
我想将所有数据帧列转换为资产对象。我正在尝试以下代码,但不起作用:

for column in df.columns:
    column = Asset (column)
我还尝试了将df.columns转换为字符串列表的方法

编辑 我的目标是为每一列创建一个与该列同名的对象。这样,对象将自动拥有列的内容,例如price。该类定义为:

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

重新指定
columns
仅意味着您正在更改变量引用的对象,并不意味着原始
df.columns
将被更新

我建议使用列表理解并返回结果:

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

根据您的编辑

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


它工作得很好,只是不符合你的要求。请更新你的问题并解释你所说的“它不工作”是什么意思。谢谢,但我想我不清楚。你能看一下编辑吗?@st19297为什么
assets=[Asset(x)for x in df.columns]
不起作用?它会起作用,但会给我一个对象列表。如何在名称空间中包含单个对象而不是列表?对不起,我是一个编码员beginner@st19297看到这个链接:简单的回答是,你不能,你不应该。改用字典。请参阅我的最终编辑。@st19297如果您的问题得到了回答,请。谢谢
asset = {x : Asset(x) for x in df.columns}