Изменение атрибута объекта в фрейме данных pandas

#python #pandas

#python #pandas

Вопрос:

В следующем df :

 import pandas as pd
class Aclass:
    def __init__(self, i: int=0):
        self.name = 'A' str(i)
        self.val = 1

    def __repr__(self):
        return self.name

one = Aclass(1)
two = Aclass(2)
three = Aclass(3)

df = pd.DataFrame({'a': [one, two, three], 'b': [4, 5, 6]})
 

… как можно изменить значение объектов в столбце a на целые числа b таким образом, чтобы:

print([i.a.val for i in df.itertuples()])

показывает [4, 5, 6] ?

Комментарии:

1. Вы пытаетесь это сделать print([(i.a.val)*(i.b) for i in df.itertuples()]) ?

Ответ №1:

Я получил ответ, он так же прост, как:

 for i in df.itertuples():
    i.a.val = i.b
 

По какой-то причине понимание списка [i.a.val = i.b for i in df.itertuples()] не сработало, что меня расстроило!