이번 시간에는 pandas의 dataframe에 대해서 맛보기만 보도록 하겠습니다.

 


 이 글에서 챙겨 가셔야 할 것들만 간단하게 정리해 보겠습니다.

 

 이 글에서는 이런 표들을 자주 보게 될 거에요. 당연하게도, 행과 열이 있을 거에요. city, pop 이런 것은 열이라고 해요.

 

 

 이렇게 노란 줄로 된 것을 열이라 합니다. 그리고, 가로 줄로 된 것을 행이라 하는데요. Dataframe 에서는 인덱스라고 해요.

 

 

 예를 들어서, 연두색으로 칠한 것은 인덱스 2에 딸려있는 row 정도로 보면 됩니다. 앞에 0, 1, 2, 3, 4가 붙은 거나 city, pop 등이 붙은 건 라벨이 되었다고 합니다. 문서의 Attributes에서, index, columns를 보시면 알 수 있을 듯 싶네요.

 


 주요 도시의 이름과 인구 수가 적혀있는 데이터 셋을 가지고 간단한 프로그램을 작성해 보겠습니다.

 

 첫 번째 인자로, 2차원 list를 넣었어요. 각각의 데이터는 눈치 채셨겠지만, 도시 이름과 2020년 10월 기준 인구수입니다. 그리고 옵션 인자인 columns에 ['City', 'Population']을 넣었는데요. 이는 도시 이름과 인구 수를 표현하기 위함입니다. 이렇게 보니, 코드가 상당히 길어 보이는데요. 파일로부터 읽어오는 방법도 있습니다. 예를 들어 xlsx로부터 읽어오면, 코드 길이가 대폭 짧아질 겁니다.

 

 DataFrame 객체를 만들고 출력해 봅시다.

 

 그러면, 제가 넣은 Seoul, Busan, Incheon, Daegu, Daejeon이 들어갔고, 각 도시의 인구도 들어갔음을 알 수 있어요. 각 행에 라벨링이 된 것을 볼 수 있는데요. 특별하게 넘겨준 것이 없었으므로, 0, 1, 2, 3, 4가 붙어있습니다. 여기서 City 열만을 뽑으려고 합니다.

 

 

 그러려면, df[['City']]로 City 열만 뽑아내시면 됩니다. df에 있는 전체 행이 출력되기는 하는데, City 열만 가지고 옵니다.

 

 

 도시 이름만 잘 가지고 왔음을 확인할 수 있어요.

 

 

 이제 인덱스도 설정해 봅시다. 각 도시의 앞 글자를 따서, 'S', 'B', 'I', 'D', 'D' 이렇게 해 봅시다.

 

 

 그러면 앞에 붙는 라벨이 0, 1, 2, 3, 4가 아닌, S, B, I, D, D로 바뀌었음을 알 수 있어요. 이 라벨들은 특정한 행 하나를 삭제할 때, 넘겨줘야 할 인자가 됩니다. 물론, 행에 붙은 저 라벨들이 unique 할 때.

 


 이제 행에 접근해 보도록 하겠습니다. 행에 접근하기 위해서는 loc을 쓰는데요.

 

 rows와 colums에 접근하기 위해 쓰나 봅니다. 여기에서는 간단하게 i번째 row에만 접근을 해 볼 것이니, 엄청난 설명 다 보실 필요 없습니다.

 

 

 밑에 쭉 내려오시다 보면, 친절하게 예제가 있는데요. [[]]를 이용하면 DataFrame을 리턴한다고 되어 있어요. 그리고, 저 예제에서 어떻게 넘겨주었나를 보면, [['viper', 'sidewinder']] 이렇게 넘겨줬어요. 그랬더니 실제로 라벨이 viper인 행과, sidewinder인 행을 결과값으로 돌려주었어요.

 

 그러면, 0, 1, 2, 3, 4로 라벨링 된 행에서 2번째 행만 가져오려면 어떻게 하면 될까요?

 

 

 df.loc[[2]] 이렇게 하시면 됩니다.

 

 그러면, Incheon만 가지고 옴을 알 수 있습니다.