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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -17
app.py CHANGED
@@ -4,26 +4,33 @@ import re
4
 
5
  def calculate_correlations(file_obj):
6
  try:
7
- df = pd.read_csv(file_obj.name)
 
 
 
 
 
 
 
 
 
 
8
 
9
- # Преобразование 'Soon ' ДО применения pd.to_numeric
10
- df['Soon '] = df['Soon '].str.replace(' из 5', '')
11
- df['Soon '] = pd.to_numeric(df['Soon '].astype(str).str.replace(',', '.'), errors='coerce')
12
 
13
- # 1. Оценка и наличие отзыва
14
- df['has_review'] = df['Cam'].notna().astype(int)
15
- correlation_review = df['Soon '].corr(df['has_review'])
16
 
17
- # 2. Оценка и тип размещения (приблизительно)
18
- accommodation_types = ['кемпер', 'палатка', 'бунгало', 'мобильный дом']
19
- correlation_accommodation = {}
20
- for acc_type in accommodation_types:
21
- df[acc_type] = df['Cam'].apply(lambda x: 1 if isinstance(x, str) and re.search(acc_type, x, re.IGNORECASE) else 0)
22
- correlation_accommodation[acc_type] = df['Soon '].corr(df[acc_type])
23
 
24
- # 3. Оценка и статус эксперта
25
- df['is_expert'] = df['Exp'].apply(lambda x: 1 if isinstance(x, str) and 'местный эксперт' in x.lower() else 0)
26
- correlation_expert = df['Soon '].corr(df['is_expert'])
 
 
 
 
 
 
27
 
28
  return {
29
  "correlation_review": correlation_review,
@@ -31,8 +38,9 @@ def calculate_correlations(file_obj):
31
  "correlation_expert": correlation_expert
32
  }
33
 
 
34
  except Exception as e:
35
- return {"error": str(e)} # Возвращаем словарь с ошибкой
36
 
37
 
38
 
 
4
 
5
  def calculate_correlations(file_obj):
6
  try:
7
+ # Попробуем разные разделители
8
+ try:
9
+ df = pd.read_csv(file_obj.name, encoding='utf-8')
10
+ except pd.errors.ParserError:
11
+ try:
12
+ df = pd.read_csv(file_obj.name, sep=';', encoding='utf-8')
13
+ except pd.errors.ParserError:
14
+ try:
15
+ df = pd.read_csv(file_obj.name, sep='\t', encoding='utf-8')
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
  "correlation_expert": correlation_expert
39
  }
40
 
41
+
42
  except Exception as e:
43
+ return {"error": f"Неизвестная ошибка: {e}"} # Общее сообщение об ошибке
44
 
45
 
46