как получить процент положительных и отрицательных настроений в фрейме данных - PullRequest
0 голосов
/ 06 августа 2020

У меня есть сценарий python, который прогнозирует анализ настроений для фрейма данных, я хочу отображать процент предсказанных положительных и отрицательных записей.

test_twtr = pd.read_excel("F:/AIenv/sentiment_analysis/20200717_100219_Sentiment - Copy.xlsx",names=col_names)

test_twtr['processed_TEXT'] = test_twtr['TRANSLATION'].apply(processTweet)
test_twtr_preds = LR_Model.predict(test_twtr['processed_TEXT'])
def_test_twtr_preds = test_twtr.copy()
def_test_twtr_preds['predictions'] = test_twtr_preds

def_test_twtr_preds.apply(get_percentage)

Для этой задачи я создаю функцию:

def get_percentage(row):
    if row["predictions"] == "Positive":
        pos=+1
        print("Positive tweets percentage: {} %".format(100*len(pos)/len(row["predictions"]))) 
        
    elif row["predictions"] == "Negative":
        neg=+1
        print("Negative tweets percentage: {} %".format(100*len(neg)/len(row["predictions"]))) 

Затем я применяю эту функцию к фрейму данных, но система cra sh и отображает следующую ошибку:

----------- -------------------------------------------------- -------------- KeyError Traceback (последний вызов последний) в ----> 1 def_test_twtr_preds.apply (get_percentage)

f: \ aienv \ lib \ site- пакеты \ pandas \ core \ frame.py в apply (self, fun c, axis, raw, result_type, args, ** kwds) 6876 kwds = kwds, 6877) -> 6878 return op.get_result () 6879 6880 def applymap (self, fun c) -> «DataFrame»:

f: \ aienv \ lib \ site-packages \ pandas \ core \ apply.py в get_result (self) 184 return self.apply_raw () 185 -> 186 return self.apply_standard () 187 188 def apply_empty_result (self):

f: \ aienv \ lib \ site-packages \ pandas \ core \ apply.py в apply_standard (self) 294 try: 295 result = libreduction.compute_reduction (-> 296 values, self.f, axis = self.axis, dummy = dummy, labels = labels 297) 298 за исключением ValueError как err:

pandas_libs \ Reduction.pyx в pandas ._ libs.reduction.compute_reduction ()

pandas_libs \ reduce.pyx в pandas ._ libs.reduction.Reducer.get_result ()

in get_percentage (row) 1 def get_percentage (row): ----> 2 if row ["predictions"] == "Positive": 3 pos = + 1 4 print ("Положительные твиты процент: {}% ". format (100 * len (pos) / len (row [" предсказания "]))) 5

f: \ aienv \ lib \ site-packages \ pandas \ core \ series .py в getitem (self, key) 869 ke y = com.apply_if_callable (key, self) 870 try: -> 871 result = self.index.get_value (self, key) 872 873 если не is_scalar (результат):

f: \ aienv \ lib \ site-packages \ pandas \ core \ indexes \ base.py в get_value (self, series, key) 4403 k = self._convert_scalar_indexer (k, kind = "getitem") 4404 try: -> 4405 return self._engine.get_value (s, k, tz = getattr (series.dtype, "tz", None)) 4406 за исключением KeyError как e1: 4407, если len (self)> 0 и (self.holds_integer () или self.is_boolean ()):

pandas_libs \ index.pyx в pandas ._ libs.index.IndexEngine.get_value ()

pandas_libs \ index.pyx в pandas ._ libs.index.IndexEngine.get_value ()

pandas_libs \ index.pyx в pandas ._ libs.index.IndexEngine.get_lo c ()

pandas_libs \ index_class_helper.pxi в pandas ._ libs.index.Int64Engine._check ()

KeyError: 'предсказания'

...