boompack commited on
Commit
bc71c73
·
verified ·
1 Parent(s): a567382

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -40
app.py CHANGED
@@ -4,54 +4,24 @@ import re
4
 
5
  def calculate_correlations(file_obj):
6
  try:
7
- # ... (код для чтения CSV с разными разделителями - без изменений) ...
 
 
 
 
 
 
8
 
 
 
9
 
10
- # НОВЫЕ НАЗВАНИЯ СТОЛБЦОВ С ПРОБЕЛАМИ
11
- if ' оценка время ответа ' not in df.columns: # С пробелами
12
- return {"error": "Столбец ' оценка время ответа ' не найден"}
13
 
14
- if 'коментарий' not in df.columns:
15
- return {"error": "Столбец 'коментарий' не найден"}
16
 
17
- if 'статус' not in df.columns:
18
- return {"error": "Столбец 'статус' не найден"}
19
-
20
- if ' хозяйка ответ' not in df.columns: # С пробелами
21
- return {"error": "Столбец ' хозяйка ответ' не найден"}
22
-
23
-
24
-
25
- # Преобразование ' оценка время ответа '
26
- try:
27
- df[' оценка время ответа '] = df[' оценка время ответа '].astype(str).str.replace(' из 5', '')
28
- df[' оценка время ответа '] = pd.to_numeric(df[' оценка время ответа '].astype(str).str.replace(',', '.'), errors='coerce')
29
- except AttributeError:
30
- return {"error": "Ошибка преобразования столбца ' оценка время ответа '. Проверьте формат данных."}
31
-
32
- # ... (далее везде использовать ' оценка время ответа ', 'коментарий', 'статус', ' хозяйка ответ') ...
33
-
34
- # 1. Оценка и наличие отзыва (коментарий)
35
- df['has_review'] = df['коментарий'].notna().astype(int)
36
- correlation_review = df[' оценка время ответа '].corr(df['has_review']) # <- здесь
37
-
38
- # 2. Оценка и тип размещения (приблизительно)
39
- # ... (здесь тоже)
40
-
41
- # 3. Оценка и статус эксперта
42
- # ... (и здесь)
43
-
44
- return {
45
- "correlation_review": correlation_review,
46
- "correlation_accommodation": correlation_accommodation,
47
- "correlation_expert": correlation_expert
48
- }
49
 
50
  except Exception as e:
51
  return {"error": f"Неизвестная ошибка: {e}"}
52
 
53
- # ... (остальной код без изменений)
54
-
55
  iface = gr.Interface(
56
  fn=calculate_correlations,
57
  inputs=gr.File(type="filepath", label="CSV файл с отзывами"),
 
4
 
5
  def calculate_correlations(file_obj):
6
  try:
7
+ # Попробуем разные разделители
8
+ for sep in [',', ';', '\t']:
9
+ try:
10
+ df = pd.read_csv(file_obj.name, sep=sep, encoding='utf-8')
11
+ break # Выходим из цикла, если чтение успешно
12
+ except pd.errors.ParserError:
13
+ pass # Пробуем следующий разделитель
14
 
15
+ if 'df' not in locals(): # Проверяем, был ли создан df
16
+ return {"error": "Ошибка парсинга файла. Не удалось прочитать CSV с разными разделителями."}
17
 
 
 
 
18
 
 
 
19
 
20
+ # ... (дальнейший код - без изменений)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
  except Exception as e:
23
  return {"error": f"Неизвестная ошибка: {e}"}
24
 
 
 
25
  iface = gr.Interface(
26
  fn=calculate_correlations,
27
  inputs=gr.File(type="filepath", label="CSV файл с отзывами"),