Если ваша цель - использовать load
в качестве фактического метода класса, вот пример того, как это работает в вашем случае:
import pandas as pd
class Report:
def __init__(self, c=['red', 'green', 'blue'], y=[2017, 2018, 2019]):
self.color = c
self.years = y
@classmethod
def load(cls, self):
df = pd.DataFrame(
{'color': ['red', 'blue', 'green', 'yellow', 'purple'],
'year': [2015, 2016, 2017, 2018, 2019]}
)
df = df.loc[df['color'].isin(self.color) & df['year'].isin(self.years)]
self.df = df
В действии:
>>> report = Report()
>>> Report.load(report)
>>> print(report.df)
color year
2 green 2017