Spaces:
Runtime error
Runtime error
Update app.py
Browse files
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 '
|
36 |
-
return "Error: 엑셀 파일에 '
|
37 |
|
38 |
# 1. G1셀에 "글자수" 입력
|
39 |
df.loc[0, 'G'] = "글자수"
|
40 |
|
41 |
-
# 2. G2셀부터 G열에
|
42 |
-
df['G'] = df['
|
43 |
|
44 |
# 3. G열 기준으로 내림차순 정렬
|
45 |
df = df.sort_values(by='G', ascending=False)
|
46 |
|
47 |
# 4. 긍정 리뷰 10개 선택 (리뷰점수 E열이 5점 또는 4점이고, G열의 글자수가 500 이하인 항목)
|
48 |
-
if '
|
49 |
-
return "Error: 엑셀 파일에 '
|
50 |
|
51 |
-
positive_reviews = df[(df['
|
52 |
|
53 |
# 5. 부정 리뷰 10개 선택 (리뷰점수 E열이 1점 또는 2점이고, G열의 글자수가 500 이하인 항목)
|
54 |
-
negative_reviews = df[(df['
|
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()
|
|
|
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()
|