Pandas로 데이터 전처리를 하다보면 여러개의 데이터프레임을 합쳐야 하는 경우가 굉장히 많다.
그냥 빈 데이터프레임을 만든 후, append로 데이터프레임을 계속 키워나가도 되긴 하지만, 이 경우 속도 면에서 엄청난 답답함을 경험하게 된다.
주로 아래 구조로 합치는데, 소요시간 및 리소스 측면에서 매우 만족스럽다.
# 1단계 : 내가 합칠 데이터프레임들을 담을 list 만들기
dfs = []
# 2단계 : for loop를 통해서 df를 하나씩 만들고, list 안에 담아두기
for i in range (0,100):
small_df = myfunction(i)
dfs.append(small_df)
# 또는
for small_df in 'some_function_that_yields_dataframes():
dfs.append(small_df)
## 이렇게 하면 dfs = [df1, df2, df3 .. 꼴이 됨]
## 3단계 pd. concat를 통해서 list 안에 있는 df들을 합치기
large_df = pd.concat(dfs, ignore_index=True)
### 완성 형태
small_dfs = []
for small_df in some_function_that_yields_dataframes():
small_dfs.append(small_df)
large_df = pd.concat(small_dfs, ignore_index=True)
'Code Snippets > Pandas' 카테고리의 다른 글
데이터프레임을 이미지 파일로 저장 (0) | 2021.10.10 |
---|---|
[Pandas] 데이터프레임 제목(Caption) 꾸미기 (0) | 2021.10.09 |
[Pandas] 특정 조건을 만족하는 행 서식 변경 (0) | 2021.10.07 |
[Pandas] 짝수행, 홀수행만 뽑아내기 (0) | 2021.08.09 |
중부원점(EPSG:2097) 위도·경도(WGS84)로 변환 (연산 속도 높이기) (0) | 2021.06.10 |