[Pandas] 시리즈 데이터프레임으로 바꾸기(to_frame)

반응형
반응형

시리즈(Series)를 데이터프레임(DataFrame)으로 바꾸는 방법입니다. 시리즈의 차원은 1차원이고 데이터프레임은 2차원입니다. 서로 차원이 다르기 때문에 사용방법이 약간 다릅니다. 보통 데이터프레임에 익숙하기 때문에 때로는 시리즈를 데이터프레임으로 바꾸는 게 편할 때가 있습니다.

시리즈 데이터프레임으로 바꾸기

보통 groupby를 통해 톻계값을 출력하게 되면 시리즈로 바뀝니다. 값이 하나로 되면 시리즈로 바뀌게 됩니다. 이를 데이터프레임으로 바꿀 수 있습니다.

예를 보면 다음과 같습니다.

import pandas as pd
df = pd.DataFrame({'A':[1,30,70],'B':[2,30,80],'C':[3,40,90]})
df = df.T
display(df)

통계값을 구하면 시리즈로 바뀝니다.

series = df.mean()

이걸 데이터프레임으로 바꾸기 위해서 to_frame() 함수를 사용합니다.

series.to_frame()

딱히 설정할 파라미터는 없고 실행하면 됩니다.
다만, 데이터프레임인데 to_frame()을 실행하면 오류가 발생합니다.

 

데이터프레임인데 시리즈가 되는 메쏘드들이 있습니다.
이런 게 시리즈가 된다는 걸 파악하면 빠르게 작업할 수 있습니다.

 

시리즈로 반환

  • mean()
  • count()
  • var()
  • std()
  • min()
  • max()
  • median()
  • value_counts()
  • quantile()
  • dtypes

데이터프레임으로 반환

  • describe()
  • sort_values()
  • rank()
  • head()
  • tail()
  • rename()

하지만 groupby를 하면 통계값은 데이터프레임으로 바뀝니다. 왜냐하면 groupby는 컬럼을 행으로 가져오는 것이기 때문에 차원이 바뀌질 않습니다.

df.groupby(1).mean()

 

size는 시리즈로 변합니다.

df.groupby(1).size()

 

판다스의 출력 타입을 잘 알아둔다면 코드를 깔끔하게 만들 수 있으니 참고하시기 바랍니다.

 

함께보면 좋은 글

[Pandas] 데이터프레임 합치기(append,concat)

[Pandas] DataFrame 합치기(Merge)

[Pandas] 중복데이터 병합하기(column이 모두 같은 경우)

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY