본문 바로가기
데이터분석/Pandas&Numpy

pandas 깔끔한 데이터 만들기 - 열과 피벗

by ADELA_J 2023. 6. 28.

<넓은 데이터>

- 데이터프레임의 열은 파이썬의 변수와 비슷한 역할을 함

- 데이터프레임의 열 자체가 어떤 값들을 가지고 있음.

- 근데 표로 되어 있다보니 열이 옆으로 길게 늘어선 형태가 됨 이것이 바로 넓은 데이터

 

● melt 메서드

지정한 열의 데이터를 모두 행으로 정리해줌

    ▷ melt (id_vars, value_vars, var_name, value_name)

id_vars 위치를 그대로 유지할 열의 이름 지정
value_vars 행으로 위치를 변경할 열의 이름을 지정
var_name value_vars로 위치를 변경한 열의 이름을 지정
value_name var_name으로 위치를 변경한 열의 데이터를 저장한 열의 이름을 지정

▼ melt 메서드를 사용해보기 위해 데이터 하나를 불러와보기

맨 위에 <$10k $10-30k 이렇게 적혀있는 것이 바로 넓은 데이터!

 

- 여기서 6개 열만 출력해봄

▲ 그러니까 소득 정보가 열을 구성하고 있음. 

 >> 만약 소득 정보 열을 행 데이터로 옮기고 싶다면 어떻게 해야할까?

▲ 바로 그때 써주는 것이 melt...! 

id_vars 인자값으로 지정해준 religion을 제외하고 모두 열로 정리되고 열의 데이터들도 정리되었음. 

 ▷ 이것을 바로 religion 열을 고정하여 피벗했다고 부른다.

▲ 바뀐 열의 이름을 바꾸기 위해서는 var_name과 value_name의 인자값을 주면 됨.

 

<최종 정리>

▼ religion 열을 고정해 피벗해주고

▼ 새로 생긴 열 이름을 다시 바꿔줌

▼▼▼그것에 대한 코드가 요것▼▼▼

 

◎ 2개 이상의 열을 고정할때는 id_vars 인자값을 열 이름 리스트로 전달해주면 됨

 

자세한 내용

https://pandas.pydata.org/docs/reference/api/pandas.pivot_table.html?highlight=pivot_table#pandas.pivot_table 

 

pandas.pivot_table — pandas 2.0.3 documentation

If list of functions passed, the resulting pivot table will have hierarchical columns whose top level are the function names (inferred from the function objects themselves) If dict is passed, the key is column to aggregate and value is function or list of

pandas.pydata.org