首页 > 解决方案 > 用对象的属性替换 Pandas 系列中的对象

问题描述

假设我们有一个 Foo 类:

Class Foo:
    def __init__(self, name):
        self.name = name

现在我有 2 个这样的对象:

foo1 = Foo("foo")
foo2 = Foo("bar")

现在我有一个熊猫系列:

series = pd.Series([foo1, foo2])

打印出这个给出:

0    <__main__.Foo object at 0x01500FB8>
1    <__main__.Foo object at 0x0151B118>

dtype: object

有没有办法用它的属性名称替换对象?

我想出的最好方法是将整个系列变成一个列表并为列表中的每个项目创建一个 Object:Object.name 字典,然后使用替换功能,但感觉应该有一种更简单的方法来完成这个。

我会很感激任何建议,谢谢。

标签: pythonpandas

解决方案


感谢使用“应用”的建议,我找到了以下解决方案:

series = series.apply(getattr, args=("name",))

推荐阅读