어렵게 방법을 찾았습니다.
파이썬에서 pandas를 활용하여 엑셀 2개를 비교한 후 중복값을 빼고 겹치지 않는 값만 새로운 엑셀에 넣는 방법을 알아냈습니다 흑흑.
제 코드를 참고하시고 도움이 되셨으면 합니다. 사실 이 코드 그대로 쓰면 두 엑셀의 시트를 비교하여 손쉽게 중복된 값을 제외하고 새로운파일명에 깔끔한 데이터만 넣어줍니다.
길을 헤메고 계신분들은 이 코드가 한 줄기 빛이 되길 바라며..
import pandas as pd
new_df = pd.DataFrame() # 새로운 데이터프레임 생성
try: # 예외가 발생할 수 있는 코드
df1 = pd.read_excel('test2.xlsx', sheet_name=None) # 첫 번째 엑셀 파일의 모든 시트를 읽음
df2 = pd.read_excel('test1.xlsx', sheet_name=None) # 두 번째 엑셀 파일의 모든 시트를 읽음
for sheet in df1.keys(): # 첫 번째 엑셀 파일의 모든 시트에 대해 반복
print(f'Processing sheet: {sheet}') # 현재 처리중인 시트 이름 출력
df1_sheet = df1[sheet] # 첫 번째 엑셀 파일의 해당 시트를 선택
df2_sheet = df2[sheet] # 두 번째 엑셀 파일의 해당 시트를 선택
for i in range(len(df1_sheet)): # 첫 번째 엑셀 파일의 해당 시트의 모든 행에 대해 반복
try: # 예외가 발생할 수 있는 코드
sentence1 = df1_sheet.iloc[i].values[0] # 첫 번째 문장 선택 (첫 번째 컬럼 값)
sentence2 = df2_sheet.iloc[i].values[0] # 두 번째 문장 선택 (첫 번째 컬럼 값)
words1 = sentence1.split() # 첫 번째 문장을 단어로 나눔
words2 = sentence2.split() # 두 번째 문장을 단어로 나눔
common_words = set(words1).intersection(set(words2)) # 공통된 단어 찾기
if len(common_words) == 0: # 공통된 단어가 없다면
print(f'Found new sentence: {sentence1}') # 새로운 문장 발견 출력
new_df = new_df.append(df1_sheet.iloc[i]) # 새로운 데이터프레임에 추가
except IndexError as e:
print(f'예외가 발생했습니다: {e}') # 인덱스 에러가 발생했을 때 처리할 코드
continue # 다음 반복으로 넘어감
except Exception as e: # 그 외의 예외가 발생했을 때 처리할 코드
print(f'예외가 발생했습니다: {e}')
break # 반복문 종료
new_df.to_excel('new_file.xlsx', index=False) # 새로운 데이터프레임을 엑셀 파일로 저장
except FileNotFoundError as e: # 파일이 없는 경우 처리할 코드
print(f'파일을 찾을 수 없습니다: {e}')
except ValueError as e: # 잘못된 값이 있는 경우 처리할 코드
print(f'잘못된 값이 있습니다: {e}')
except Exception as e: # 그 외의 예외가 발생했을 때 처리할 코드
print(f'예외가 발생했습니다: {e}')
'프로그래밍' 카테고리의 다른 글
파이썬, pandas를 활용하여 특정 길이 이내의 값만 엑셀에 저장하는 방법 (0) | 2023.03.21 |
---|---|
파이썬, 엑셀 내용 무작위로 섞는 방법 (0) | 2023.03.20 |
파이썬, 시간 (년,월,일,분,초) 각각 표현하고 변수에 저장하기 (0) | 2023.03.19 |
[안드로이드 스튜디오] 코틀린, Textview에 이미지 넣기 (0) | 2022.08.20 |
[안드로이드 스튜디오] 코틀린, 화면 전환하는 법 (Intent활용) (0) | 2022.08.18 |