Вы не можете повторно назначить self
из метода и ожидать, что он изменит внешние ссылки на объект.
self
- это просто аргумент, передаваемый вашей функции. Это имя указывает на экземпляр вызова метода. «Назначение self
» эквивалентно:
def fn(a):
a = 2
a = 1
fn(a)
# a is still equal to 1
Присвоение self
изменяет то, на что указывает имя self
(от одного экземпляра Table
до нового экземпляра Table
здесь ). Но все. Он просто меняет имя (в рамках вашего метода) и влияет не на базовый объект, а на другие его имена (ссылки).
Просто выполните поиск на месте с помощью list.sort
:
def sort(self, in_col_name):
super(Table, self).sort(key=lambda x: x[in_col_name])
Довольно неясно, что ты пытаешься сделать. Почему бы вам не попробовать прочитать данные с помощью `df = pd.read_csv ('hw03_problem2.csv', names = ['number', 'color1', 'color2']), что должно облегчить работу с ними ,
Затем вы можете построить определенное подмножество с помощью
df[df.color1 == 'black'].number.plot.hist(ax=ax1)
, если у вас уже настроены оси. Предполагается, что это числа, из которых вы делаете гистограмму.