Заменить объект в серии Pandas атрибутом объекта - PullRequest
0 голосов
/ 05 августа 2020

Предположим, у нас есть класс Foo:

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

Теперь у меня есть 2 таких объекта:

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

Теперь у меня есть pandas Series:

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

Распечатка этого дает:

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

dtype: object

Есть ли способ заменить объект по его имени атрибута?

Лучший способ, который я придумал, - это повернуть весь Выполните серию в список и создайте словарь Object: Object.name для каждого элемента в списке, а затем используйте функцию замены, но казалось, что должен быть более простой способ выполнить sh это.

Буду признателен за любые предложения, спасибо.

1 Ответ

0 голосов
/ 05 августа 2020

Благодаря предложению использовать «применить» я нашел следующее решение:

series = series.apply(getattr, args=("name",))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...