csv 파일 로드 및 검색시의 속도 올리기
csv로 바로 저장하는게 아니라 pandas를 이용하면 훨씬 빨라요
제가 해보니까 csv는 여는데 15초정도 걸리는데, pandas 쓰니까 2초정도 걸리더라고요
적용해주시면 감사하겠읍니다
import pandas as pd
#이 두 줄을 이용하여 parquet파일 만들기
df = pd.read_csv("tags_2023.csv")
df.to_parquet("tags_2023.parquet", compression=None)
#load시
df = pd.read_parquet("tags_2023.parquet", engine="fastparquet")
df.columns.values[0] = "tag"
#get
def get_object_by_index(df, index):
return df.iat[index,0]
#find
def find_objects_by_name(df, tag_name):
return df[df['tag'].str.contains(tag_name, na = False)]
print(get_object_by_index(df, 20))
print(find_objects_by_name(df, "breasts"))
parquet 쓰면 탐색 속도의 개선뿐만이 아니라 저장 공간도 개선 가능하고, 추가적인 temp_txt2img.csv 파일 생성 없이 처리할 수 있으며 다양한 column 데이터로 분류할 수 있다는 장점이 있습니다. 그런데 지금 프로그램의 로직이 죄다 csv 파일 기반이라 (이 프로그램을 처음에 작성할 때는 parquet 파일이 아닌 .csv 파일로 시작했기 때문에) 수정해야 할 부분이 워낙 많아서 당장은 손 못대고 있는 상황입니다. TODO 느낌으로 discussion 자체는 열어놓겠습니다.