태그: DataFrame 행 병합

안녕하세요. 언제나 휴일에 언휴예요.

이번 강의에서는 DataFrame에 행 추가 및 병합 등 다양한 실습을 해 볼게요.

빈 DataFrame 생성 및 행 추가

빈 DataFrame을 생성할 때 행과 열 모두 빈 상태라면 아무 의미가 없습니다.

열 정보는 갖고 있어야 행 데이터를 추가할 수 있어요.

다음은 행과 열 모두 빈 상태인 DataFrame을 생성한 후에 행을 추가하는 코드입니다.

물론 정상적으로 동작하지 않아요.

실행하였을 때 오류 메시지입니다.

앞으로 빈 DataFrame을 생성하는 것은 데이터가 빈 상태를 얘기할게요.

DataFrame의 구조(columns)는 약속해야겠죠.

DataFrame을 생성할 때 데이터와 행 이름, 열 이름 등을 전달할 수가 있죠.

이 중에 열 이름만 전달하면 데이터는 비어있고 구조만 약속한 DataFrame을 만들 수 있어요.

다음은 실행 모습입니다.

행을 추가할 때 멤버 loc를 이용합니다.

df.loc[행이름]= 행 데이터

실행 결과는 다음과 같습니다.

열 길이 같은 DataFrame 행 병합

열 길이나 행 길이가 같은 DataFrame은 하나로 병합할 수 있어요.

열 길이가 같을 때 append 함수로 하나의 DataFrame으로 병합할 수 있습니다.

주의할 점은 병합한 DataFrame을 반환하므로 필요한 변수에 설정하여 사용하세요.

new_df = df1.append(df2)

다음은 df1와 열 길이가 같은 df2를 생성하여 하나로 병합하는 예제입니다.

실행 결과는 다음과 같습니다.

행 길이 같은 DataFrame 열 병합

행 길이가 같은 DataFrame은 join 함수로 병합할 수 있어요.

마찬가지로 병합한 DataFrame을 반환하므로 필요한 변수에 설정하여 사용하세요.

new_df = df1.join(df2)

다음은 행 길이가 같은 df3를 생성하여 df1과 df3를 병합하는 예제 코드입니다.

실행 결과는 다음과 같습니다.

행 이름, 열 이름 설정

행 이름 과 열 이름은 index와 columns 멤버에 설정합니다.

실행 결과는 다음과 같습니다.

특정 행 이름, 열 이름 바꾸기

특정 행 이름과 열 이름을 바꿀 때는 rename 함수를 사용합니다.

이 때 inplace=True를 지정하는 것을 잊지 마세요.

df1.rename(index={old행이름: new행이름},columns={old열이름: new열이름},inplace=True)

실행 결과는 다음과 같습니다.

빈 값으로 데이터 넣기

데이터를 집어넣을 때 아직 측정하지 못하거나 준비를 못한 부분이 있을 수 있습니다.

이러한 데이터를 결측치라고 부르는데 이를 포함하여 데이터를 넣어야 구조가 안정적입니다.

이 때 numpy의 nan을 사용하세요.

DataFrame의 특정 행 값을 빈 값으로 넣을 때는 loc를 이용하고 특정 컬럼 값일 때는 바로 인덱스를 사용하세요.

df[열이름]=numpy.nan

df.loc[행이름]=numpy.nan

다음은 2번 행을 추가한 후에 6번 컬럼 값과 3번 행 값을 빈 값으로 집어넣는 예제 코드입니다.

실행 결과는 다음과 같습니다.

행 순서 바꾸기, 열 순서 바꾸기

행 순서를 바꿀 때는 reindex 함수를 이용합니다.

열 순서를 바꿀 때는 []를 이용합니다.

df = df.reindex(index=행데이터)

df = df[열데이터]

다음은 실행 결과입니다.

전체 소스 코드

다음은 이번 실습에서 사용한 전체 소스 코드입니다.