무던히 하다보면 느는

[파이썬/Python] 여러개의 데이터프레임 concat으로 결합 본문

파이썬

[파이썬/Python] 여러개의 데이터프레임 concat으로 결합

무던히 하다보면 느는 2022. 6. 21. 21:17

공공데이터 포털이나 다른 여러 홈페이지들의 데이터를 불러들일때

open api를 이용하는 경우가 많다. 거기에 보다 보면 numOfRows나 pageNo가 있다.

그리고 counts 도.

 

counts는 굳이 말하자면 열의 종류이고

numOfRows는 한 페이지에 나오는 열들의 갯수

pageNo는 페이지 넘버다.

 

이번에 내가 불러오고자 하는 데이터의 경우 numOfRows가 99개로 제한되어 있었고 (orz)

counts가 7864개가 있었다. 🙄

계산기를 두들겨보니 pageNo은 80개로... 해줘야 한당

 

아무튼

 

 

요로코롬 globals 함수 써서 여러개의 dataframe에 담고 하나의 dataframe으로 concat으로 결합해 줄거다!

(저기 for i in range(0,81) 해줘야 한다. 실수 ㅎㅎ..)

 

그럼 dataframe0 부터 dataframe79 까지의 .shape은 (99, 20)

dataframe80의 shape은 (43, 20) 으로 나오게 된다.

 

그리고 이제 concat을 해줄거다.

 

여기서 고민을 많이 했는데 

 

list를 두개 만들어서 하나는 숫자 0부터 80까지

하나는 ['dataframe'] * 80 으로 해서 dataframe만 80개 있는..

그리구 두 리스트를 zip으로 묶어주는 걸 생각했는데

 

음 다른 방법을 생각해냈다.

 

방법은

 

 

위와 같은 코드를 쓰면 결과가 저렇게 따옴표가 포함되어 있는 형식으로 출력된다.

그러나! 우리가 사용하고자하는 pd.concat 코드는 pd.concat([df1,df2...]) 이기 때문에

 

", ".join(pineapple)

을 통해서 따옴표가 제거되게 만들어준다.

 

그리고 복사해서 concat에 넣어주고

reset_index(drop=True) 쓰게 되면 원하는 데이터프레임 모습이 나온다 짜잔~~~ 👍