aliceblue11 commited on
Commit
c223f4b
·
verified ·
1 Parent(s): 143d18d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -15
app.py CHANGED
@@ -25,40 +25,40 @@ def generate_text(user_message, system_message, max_tokens, temperature, top_p):
25
  def upload_excel(file):
26
  df = pd.read_excel(file.name)
27
 
28
- # 열 이름에 공백이나 특수문자가 포함된 경우 대비하여 열 이름 정리
29
  df.columns = df.columns.str.strip()
30
 
31
  # 열 이름 출력 확인 (디버깅용)
32
  print("엑셀 파일의 열 이름:", df.columns.tolist())
33
 
34
- # D열이 존재하는지 확인
35
- if 'D' not in df.columns:
36
- return "Error: 엑셀 파일에 'D'열이 존재하지 않습니다. 열 이름을 확인해주세요."
37
 
38
  # 1. G1셀에 "글자수" 입력
39
  df.loc[0, 'G'] = "글자수"
40
 
41
- # 2. G2셀부터 G열에 D열의 글자수 입력
42
- df['G'] = df['D'].apply(lambda x: len(str(x)) if pd.notnull(x) else 0)
43
 
44
  # 3. G열 기준으로 내림차순 정렬
45
  df = df.sort_values(by='G', ascending=False)
46
 
47
  # 4. 긍정 리뷰 10개 선택 (리뷰점수 E열이 5점 또는 4점이고, G열의 글자수가 500 이하인 항목)
48
- if 'E' not in df.columns:
49
- return "Error: 엑셀 파일에 'E'열이 존재하지 않습니다."
50
 
51
- positive_reviews = df[(df['E'].isin([5, 4])) & (df['G'] <= 500)].head(10)
52
 
53
  # 5. 부정 리뷰 10개 선택 (리뷰점수 E열이 1점 또는 2점이고, G열의 글자수가 500 이하인 항목)
54
- negative_reviews = df[(df['E'].isin([1, 2])) & (df['G'] <= 500)].head(10)
55
 
56
- # 6. 긍정리뷰와 부정리뷰에서 리뷰날짜, 옵션, 리뷰내용(D열)을 선택하여 반환
57
- if all(col in df.columns for col in ['리뷰날짜', '옵션', 'D']):
58
- positive_reviews_data = positive_reviews[['리뷰날짜', '옵션', 'D']]
59
- negative_reviews_data = negative_reviews[['리뷰날짜', '옵션', 'D']]
60
  else:
61
- return "Error: 필요한 열(리뷰날짜, 옵션, D)이 엑셀 파일에 존재하지 않습니다."
62
 
63
  # 긍정리뷰와 부정리뷰 내용을 텍스트 형식으로 반환 (그리디오에 보여주기 위해)
64
  return positive_reviews_data.to_string(), negative_reviews_data.to_string()
 
25
  def upload_excel(file):
26
  df = pd.read_excel(file.name)
27
 
28
+ # 열 이름 정리
29
  df.columns = df.columns.str.strip()
30
 
31
  # 열 이름 출력 확인 (디버깅용)
32
  print("엑셀 파일의 열 이름:", df.columns.tolist())
33
 
34
+ # '리뷰내용' 열을 사용 (기존 'D'열을 대체)
35
+ if '리뷰내용' not in df.columns:
36
+ return "Error: 엑셀 파일에 '리뷰내용' 열이 존재하지 않습니다.", ""
37
 
38
  # 1. G1셀에 "글자수" 입력
39
  df.loc[0, 'G'] = "글자수"
40
 
41
+ # 2. G2셀부터 G열에 '리뷰내용' 열의 글자수 입력
42
+ df['G'] = df['리뷰내용'].apply(lambda x: len(str(x)) if pd.notnull(x) else 0)
43
 
44
  # 3. G열 기준으로 내림차순 정렬
45
  df = df.sort_values(by='G', ascending=False)
46
 
47
  # 4. 긍정 리뷰 10개 선택 (리뷰점수 E열이 5점 또는 4점이고, G열의 글자수가 500 이하인 항목)
48
+ if '리뷰점수' not in df.columns:
49
+ return "Error: 엑셀 파일에 '리뷰점수' 열이 존재하지 않습니다.", ""
50
 
51
+ positive_reviews = df[(df['리뷰점수'].isin([5, 4])) & (df['G'] <= 500)].head(10)
52
 
53
  # 5. 부정 리뷰 10개 선택 (리뷰점수 E열이 1점 또는 2점이고, G열의 글자수가 500 이하인 항목)
54
+ negative_reviews = df[(df['리뷰점수'].isin([1, 2])) & (df['G'] <= 500)].head(10)
55
 
56
+ # 6. 긍정리뷰와 부정리뷰에서 리뷰날짜, 구매옵션, 리뷰내용을 선택하여 반환
57
+ if all(col in df.columns for col in ['리뷰날짜', '구매옵션', '리뷰내용']):
58
+ positive_reviews_data = positive_reviews[['리뷰날짜', '구매옵션', '리뷰내용']]
59
+ negative_reviews_data = negative_reviews[['리뷰날짜', '구매옵션', '리뷰내용']]
60
  else:
61
+ return "Error: 필요한 열(리뷰날짜, 구매옵션, 리뷰내용)이 엑셀 파일에 존재하지 않습니다.", ""
62
 
63
  # 긍정리뷰와 부정리뷰 내용을 텍스트 형식으로 반환 (그리디오에 보여주기 위해)
64
  return positive_reviews_data.to_string(), negative_reviews_data.to_string()