Вы могли бы создать контейнер, в котором хранится ваш фрейм данных и который позволяет вносить изменения в каждый Person
при обновлении фрейма данных.
class People:
def __init__(self, *person):
for p in person:
setattr(self, p.name, p.score)
@property
def df(self):
return pd.DataFrame.from_dict(self.__dict__, orient='index', columns=['score'])
Например,
people = People(Person('Bob', 2), Person('Carl', 5))
people.df
# score
# Bob 2
# Carl 5
Затем вы можете изменить атрибут
people.Carl = 10
people.df
# score
# Bob 2
# Carl 10
Вы также можете добавить новый Person
people.james = 5
people.df
# score
# Bob 2
# Carl 10
# james 5