boompack commited on
Commit
605c319
·
verified ·
1 Parent(s): 6cd4aa9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -12
app.py CHANGED
@@ -16,21 +16,38 @@ def calculate_correlations(file_obj):
16
  except pd.errors.ParserError as e:
17
  return {"error": f"Ошибка парсинга файла: {e}"}
18
 
 
 
 
19
 
20
- # Проверяем, что столбец 'Soon ' существует
21
- if 'Soon ' not in df.columns:
22
- return {"error": "Столбец 'Soon ' не найден в файле."}
23
 
 
 
24
 
25
- # Преобразование 'Soon ' с обработкой ошибок
 
26
  try:
27
- df['Soon '] = df['Soon '].astype(str).str.replace(' из 5', '')
28
- df['Soon '] = pd.to_numeric(df['Soon '].astype(str).str.replace(',', '.'), errors='coerce')
29
  except AttributeError:
30
- return {"error": "Ошибка преобразования столбца 'Soon '. Проверьте формат данных."}
 
 
 
 
31
 
32
- # ... (остальной код для расчета корреляций без изменений) ...
 
 
 
 
 
33
 
 
 
 
34
 
35
  return {
36
  "correlation_review": correlation_review,
@@ -38,11 +55,8 @@ def calculate_correlations(file_obj):
38
  "correlation_expert": correlation_expert
39
  }
40
 
41
-
42
  except Exception as e:
43
- return {"error": f"Неизвестная ошибка: {e}"} # Общее сообщение об ошибке
44
-
45
-
46
 
47
  iface = gr.Interface(
48
  fn=calculate_correlations,
 
16
  except pd.errors.ParserError as e:
17
  return {"error": f"Ошибка парсинга файла: {e}"}
18
 
19
+ # НОВЫЕ НАЗВАНИЯ СТОЛБЦОВ
20
+ if 'оценка' not in df.columns:
21
+ return {"error": "Столбец 'оценка' не найден"}
22
 
23
+ if 'коментарий' not in df.columns:
24
+ return {"error": "Столбец 'коментарий' не найден"}
 
25
 
26
+ if 'статус' not in df.columns:
27
+ return {"error": "Столбец 'статус' не найден"}
28
 
29
+
30
+ # Преобразование 'оценка'
31
  try:
32
+ df['оценка'] = df['оценка'].astype(str).str.replace(' из 5', '')
33
+ df['оценка'] = pd.to_numeric(df['оценка'].astype(str).str.replace(',', '.'), errors='coerce')
34
  except AttributeError:
35
+ return {"error": "Ошибка преобразования столбца 'оценка'. Проверьте формат данных."}
36
+
37
+ # 1. Оценка и наличие отзыва (коментарий)
38
+ df['has_review'] = df['коментарий'].notna().astype(int)
39
+ correlation_review = df['оценка'].corr(df['has_review'])
40
 
41
+ # 2. Оценка и тип размещения (приблизительно)
42
+ accommodation_types = ['кемпер', 'палатка', 'бунгало', 'мобильный дом']
43
+ correlation_accommodation = {}
44
+ for acc_type in accommodation_types:
45
+ df[acc_type] = df['коментарий'].apply(lambda x: 1 if isinstance(x, str) and re.search(acc_type, x, re.IGNORECASE) else 0)
46
+ correlation_accommodation[acc_type] = df['оценка'].corr(df[acc_type])
47
 
48
+ # 3. Оценка и статус эксперта
49
+ df['is_expert'] = df['статус'].apply(lambda x: 1 if isinstance(x, str) and 'местный эксперт' in x.lower() else 0)
50
+ correlation_expert = df['оценка'].corr(df['is_expert'])
51
 
52
  return {
53
  "correlation_review": correlation_review,
 
55
  "correlation_expert": correlation_expert
56
  }
57
 
 
58
  except Exception as e:
59
+ return {"error": f"Неизвестная ошибка: {e}"}
 
 
60
 
61
  iface = gr.Interface(
62
  fn=calculate_correlations,