단일 시리즈는 to_frame()으로,
다수의 시리즈는 pd.DataFrame() 혹은 pd.concat()을 사용하여 데이터프레임으로 만들어줄 수 있다.
단일 시리즈 → 데이터프레임
단일 시리즈를 데이터프레임으로 만들어 준다면 아래 형식을 사용하면 된다.
시리즈명.to_frame(name='열이름')
아래는 시리즈 s1을 데이터프레임으로 변환하기 위한 코드의 예시다.
아웃풋 이미지의 첫번째 부분은 s1이 시리즈였을 때의 결과고,
두번째 부분은 데이터프레임 df로 변환한 후의 모습이다.
데이터프레임으로 변환할 때 열이름을 '점수'로 지정해주었다.
각 케이스의 데이터 타입으로 변환 성공 여부를 리체크해보면,
시리즈때는 < class 'pandas.core.series.Series' > 가 떠서 Series 임을,
데이터프레임로 변환 후에는 < class 'pandas.core.frame.DataFrame' > 이 뜬다. DataFrame으로 성공적으로 변경된 것을 확인할 수 있다.
다수의 시리즈 → 데이터프레임
여러 시리즈를 하나의 데이터프레임으로 병합할 수 있는 방법 2가지를 정리해보겠다.
1) pd.DataFrame( )
pd.DataFramae()으로 시리즈를 데이터프레임으로 만드는 방법은 딕셔너리를 데이터프레임으로 바꿀 때와 동일하다.
기본형식은 아래와 같다.
pd.DataFrame({'열이름1':시리즈1, '열이름2':시리즈2, ..., '열이름n':시리즈n})
2) pd.concat( )
pd.concat의 concat은 concatenate의 약어다.
연결시킨다는 뜻을 가진 concatenate은 의미 그대로 여러 시리즈를 연결시켜 하나의 데이터프레임으로 만들어준다.
참고로 다수의 데이터프레임도 pd.concat을 통해 하나의 데이터프레임으로 만들어줄 수 있다.
기본 형식은:
(A) 열 기준으로 결합할 때:
pd.concat([시리즈1, 시리즈2, ..., 시리즈n], axis=1)
** axis=1 은 열을 기준으로 각 시리즈를 쌓겠다는 의미다. 즉, 각 시리즈가 개별 열이 되어 데이터프레임으로 병합된다.
(B) 행 기준으로 결합할 때:
pd.concat([시리즈1, 시리즈2, ..., 시리즈n], axis=0)
** axis=0 혹은 함수에 axis 부분을 누락한다면 각 시리즈가 개별 행이 되어 데이터프레임으로 병합된다.
아래는 열 기준 병합하였을 때의 예시다.
열이름은 .rename(columns={'기존 열이름':'변경할 열이름', ... }) 으로 지정해주었다.
inplace=True는 원본 데이터에 적용시킨다는 뜻이다.
아래는 행 기준으로 병합했을 때다.
행 기준으로 병합했을 때 인덱스 넘버가 이상하게 섞여서 나온다.
각 시리즈의 인덱스가 병합될 때 그대로 유지되며 넘어온 것인데, 인덱스의 넘버링이 순차적으로 들어가도록 정리해주고 싶다면 .reset_index(drop=True) 를 써주면 된다.
데이터프레임명.reset_index(drop=True) 적용하면 아래와 같이 인덱스가 정리된다.
'파이썬 - 분석 라이브러리' 카테고리의 다른 글
[파이썬] 데이터프레임 인덱스 수정 - set_index, reset_index, reindex, drop, index.name (0) | 2024.06.11 |
---|---|
[파이썬] 데이터프레임 정보 확인 - info, describe, columns, count, unique, dtype, head (0) | 2024.06.10 |
[파이썬] 딕셔너리, 리스트를 데이터프레임 (DataFrame)으로 만들기 (0) | 2024.06.08 |
[파이썬] 시리즈 (Series) 만드는 방법 (0) | 2024.06.06 |
[파이썬] 구글 코랩(colab)으로 파일 불러오기 - 로컬 PC에서 불러오기 (0) | 2024.06.02 |