I'm trying to analyze some reviews using vader
in python
. I made an Analyzer
class like so:
class Analyzer:
dataframe = None
reviews = []
# other data
def __init__(self, brand):
self.dataframe = pd.read_csv(brand) # using pandas
reviews = self.dataframe['Reviews'].tolist()
def analyze(self):
# code for analyze...
# more codes...
and I used this class in main.py
like so:
from analyzer import Analyzer
brands = [
'apple',
'google',
'huawei',
'motorola',
'nokia',
'samsung',
'sony',
'xiaomi'
]
for brand in brands:
analysis = Analyzer(brand)
analysis.analyze()
del analysis
now the problem is: When brands are given to the class to be analyzed, the older reviews remain in the list.
e.g.:
apple.csv has 1000 reviews and google.csv has 700 reviews. but when google is passed to analyzer, the reviews
list length is not 700, but 1700.
CodePudding user response:
reviews
attribute is for class
and not object
, since you defined it in the body of the class.
define the reviews
in the body of __init__
:
class Analyzer:
# other data
def __init__(self, brand):
self.dataframe = pd.read_csv(brand) # using pandas
self.reviews = self.dataframe['Reviews'].tolist()
def analyze(self):
# code for analyze...
# more codes...