목표

  • 50MB가 넘어가는 엑셀 파일 두 개를 join시키는 것
  • 기준이 되는 column은 유동적이며, 사용자가 직접 고를 수 있을 것
  • 프로그래밍에 대한 지식이 없는 사람도 간단하게 사용할 수 있을 것.
  • 한 프로세스 내에서 끝날 것
  • 엑셀 제공 함수보다 속도가 빨라야 함(이건 무리일수도)

 

openpyxl은 쉽고 간단하나 속도가 느림 제대로 된 merge함수가 없는 것 같음아니면있나?

read_only로 불러오면 속도는 다소 빨라지나 iter_col 사용이 불가능하다. 열만 조회하는 것도 불가능

몇만 row 이상은 데이터 읽다가 세월이 끝나겠음 이러면 툴을 짜는 의미가 없다.

검색이 가능하면 좋겠으나 무작위 데이터의 산더미라 딱히 깔끔한 탐색 방법이 떠오르지않는다

 

pandas를 사용할 것, openpyxl보단 xlrd가 좋으나 1M행이 넘으면 열리지 않는다(넘는거같은데..)

엑셀파일을 그대로 불러오는 것보다 csv파일 형태로 불러오는 게 훨씬훨씬 빠르다

분단위를 초단위로 개선시킬 수 있다

 

한줄로 끝날 줄 알았더라면 진작에 pandas를 썼을텐데 ㄱ-

self.df2.columns.difference(self.df1.columns) -> 겹치는 열 날릴때, 조인에는 쓸수없다만

result_df = pd.merge(self.df1, self.df2on=self.col_select.get(), how="inner")

 

의문점

  • 함수를 사용한 경우 함수를 유지시켜야 하는가?
  • 기타 서식을 유지시키는 방법은?
  • 느린 건 내 컴퓨터의 문제가 아닌가?

+ Recent posts