[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

    ....