본문 바로가기
Data Science/Data Analysis

[파이썬으로 하는 데이터 분석] 6. Pandas 자료구조 - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 9. 24.
728x90
반응형

 

Pandas의 자료구조에는 Series DataFrame이 있습니다.

Series 1차원 배열이라고 생각하면 되고 DataFrame 2차원 배열이라고 생각하면 됩니다.

Pandas의 자료구조를 알아야 하는 이유는 실제로 분석을 위해 수집한 데이터는 형태와 속성이 매우 다양하기 때문에 데이터들을 분석에 맞게 정형화시켜줘야 합니다.

 

Series는 데이터가 순차적으로 나열된 1차원 배열의 형태로 파이썬에서 딕셔너리와 유사다고 생각하면 됩니다.

파이썬에서 생성한 딕셔너리를 pandas 라이브러리의 Series() 메서드에 넣으면 딕셔너리가 Series로 바뀌게 됩니다.

Series 자료구조를 살펴보는 이유는 DataFrame에서 원하는 위치를 뽑아 출력을 했을 때 Series 형태로 많이 나오기 때문에 Series를 알고 있는지 모르는지는 차이가 있을 수 있습니다.

Series에서 알아야 할 내용은 index value입니다.

Series에서 왼쪽의 데이터가 index이고 오른쪽의 데이터가 value입니다.

Series의 각 value에 접근할 때는 파이썬에서 인덱스로 접근하듯이 접근하면 됩니다.

하지면 복수 개의 value에 접근할 때는 각 인덱스를 다시 묶어서 접근해야 합니다.

 

2차원 배열인 DataFrame Series들의 모임이라고 할 수 있습니다. DataFrame을 만드는 방법은 여러 가지가 있는데 Series를 만들 때처럼 딕셔너리의 value를 리스트로 생성하고 여러 개 묶어서 DataFrame을 만들 수 있습니다.

이때 딕셔너리 하나하나 각 column이 되고 key column 이름이, key에 해당하는 value row의 값이 되는 것을 볼 수 있습니다.

 

DataFrame은 행과 열로 구성된 2차원 배열 형태의 자료이므로 데이터의 형태를 2차원으로 만들어주기만 하면 DataFrame을 만들 수 있습니다. 따라서 2차원 리스트로도 DataFrame을 만들 수 있습니다.

여기서 DataFrame을 만들 때 column의 이름 index의 이름 설정해 줄 수 있습니다. 이때 column과 index의 이름을 설정할 때는 인덱스로 설정하거나 배열의 형태로 설정할 수 있습니다.

DataFrame의 index의 이름을 문자열 형태로 나타내었지만 실제로 데이터를 분석할 때 데이터는 양이 매우 많기 때문에 보통은 숫자 형태로 많이 나타냅니다.

또한 DataFrame의 column과 index 이름 확인할 수도 있고, 이미 생성된 DataFrame의 index 이름과 column 이름 변경할 수 있습니다.

반응형

column과 index의 데이터를 모두 변경하는 것이 아니라 일부 데이터만 변경할 수도 있습니다.

rename() 메서드를 사용하여 변경하고자 하는 속성을 적어주고 변경 전 내용 변경 후 내용을 적어주면 됩니다.

하지만 여기서 DataFrame을 확인하면 변경되지 않은 것을 볼 수 있습니다. 따라서 변경 사항을 DataFrame에 적용하고자 한다면 inplace 옵션이 default로 False로 적용되어 있는 것을 True로 변경해 주면 됩니다.

 

DataFrame에서 항목을 삭제하는 것은 비교적 추천하지 않습니다. 따라서 삭제를 하고자 한다면 원본을 복사하여 복사복을 삭제하거나 변경하거나 비교하는 방식을 자료를 다루는 것이 좋습니다.

DataFrame을 복사할 때는 얕은 복사로 단순히 복사하면 변경 사항이 원본에서도 변경됩니다. 따라서 깊은 복사로 복사해야 합니다.

DataFrame의 항목을 삭제할 때는 drop() 메서드를 사용하면 됩니다. drop() 메서드를 사용하여 index나 column을 지정해 삭제할 수 있습니다.

 

삭제할 때도 마찬가지로 변경 사항을 DataFrame에 적용하려면 inplace 옵션 True로 변경해줘야 합니다. 위 예시처럼 warning(경고)가 뜰 수도 있습니다.

 

추가로 drop() 메서드에 axis 옵션이 있는데, axis 옵션의 default 값은 0인데 0은 index 축 지정을 의미하고 1은 column 축 지정을 의미하게 됩니다.

728x90
반응형