열을 행으로 이동시키고 싶을 때 melt()를 사용한다.
기본구조
pd.melt(df, id_var=['A'], value_vars=['B'])
이렇게 생긴 데이터 프레임이 있을 때, 아래 그림처럼 열을 녹여서 행을 보내는 것을 의미한다.
pd.melt(df)
다음과 같이 열 이름인 A, B, C가 variable이라는 열의 데이터로 들어가고, 원래 행들은 value라는 열 데이터로 들어간다.
pd.melt(df, id_vars=['A'], value_vars=['B']) # A열만 그대로, B열은 행으로 이동
또, A열만 그대로, B열과 C열은 행으로 이동시켜보자.
pd.melt(df, id_vars=['A'], value_vars=['B','C'])
여러 분류로 섞인 행 데이터를 열 데이터로 회전시키는 것을 Pivot(피봇)이라고 한다.
기본구조
df.pivot(index='', columns='', values='')
'date'열을 새로운 인덱스로 만들고, 'typecode'열 데이터는 새로운 열로 만들며, 'volume'열이 그 안의 데이터가 되도록 설정한다.
df.pivot(index='date', columns='typecode', values='volume')
인덱스가 date로 설정되어 있는데, 이것을 삭제해보자.
df_origin = df_pivot.reset_index() # 인덱스를 리셋한다.
열 이름이 typecode로 되어 있는 것을 삭제해보자.
df_origin.columns.name = None