Pandas 데이터프레임에 헤더 행 추가하기
loc 인덱서 사용:
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3], '이름': ['철수', '영희', '민수'], '점수': [90, 80, 70]}
df = pd.DataFrame(data)
# 헤더 추가
df.loc[0] = ['번호', '이름', '점수']
df.index = range(1, df.shape[0] + 1) # 인덱스 재설정
# 출력
print(df)
결과:
번호 이름 점수
1 1 철수 90
2 2 영희 80
3 3 민수 70
columns 속성 사용:
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3], '이름': ['철수', '영희', '민수'], '점수': [90, 80, 70]}
df = pd.DataFrame(data)
# 헤더 추가
df.columns = ['번호', '이름', '점수']
# 출력
print(df)
번호 이름 점수
1 1 철수 90
2 2 영희 80
3 3 민수 70
주의 사항:
loc
인덱서를 사용하는 경우 원하는 인덱스 값에 헤더 데이터를 지정해야 합니다.columns
속성을 사용하는 경우 리스트 형태로 헤더 데이터를 입력해야 합니다.- 두 방법 모두 기존 데이터프레임을 변경하며, 새로운 데이터프레임을 생성하지 않습니다.
이 외에도 다양한 방법으로 헤더 행을 추가할 수 있습니다. 데이터 상황에 맞는 가장 적합한 방법을 선택하여 사용하시기 바랍니다.
예제 코드: Pandas 데이터프레임에 헤더 행 추가
loc 인덱서 사용
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3], '이름': ['철수', '영희', '민수'], '점수': [90, 80, 70]}
df = pd.DataFrame(data)
# 헤더 추가
df.loc[0] = ['번호', '이름', '점수']
df.index = range(1, df.shape[0] + 1) # 인덱스 재설정
# 출력
print(df)
설명:
df.loc[0] = ['번호', '이름', '점수']
코드는 데이터프레임의 첫 번째 행(인덱스 0)에 헤더 데이터를 할당합니다.df.index = range(1, df.shape[0] + 1)
코드는 데이터프레임의 인덱스를 1부터 시작하도록 변경합니다.
columns 속성 사용
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3], '이름': ['철수', '영희', '민수'], '점수': [90, 80, 70]}
df = pd.DataFrame(data)
# 헤더 추가
df.columns = ['번호', '이름', '점수']
# 출력
print(df)
df.columns = ['번호', '이름', '점수']
코드는 데이터프레임의 열 이름을 리스트 형태로 지정합니다.
insert() 메서드 사용
import pandas as pd
# 데이터 생성
data = [[1, '철수', 90], [2, '영희', 80], [3, '민수', 70]]
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
# 헤더 추가
df.insert(0, '번호', [1, 2, 3])
df.columns = ['번호', '이름', '점수'] # 열 이름 변경 (선택 사항)
# 출력
print(df)
df.insert(0, '번호', [1, 2, 3])
코드는 데이터프레임의 첫 번째 열(인덱스 0)에 '번호'라는 새 열을 추가하고 데이터를 채웁니다.
참고:
- 위 코드는 예시이며, 실제 상황에 따라 데이터 형식이나 열 이름 등을 변경해야 할 수 있습니다.
- 데이터프레임에 이미 헤더 행이 있는 경우, 위 코드를 사용하면 기존 헤더 행이 덮혀버릴 수 있으니 주의해야 합니다.
Pandas 데이터프레임에 헤더 행 추가: 대체 방법
하지만, 상황에 따라 더 유용하거나 효율적인 대체 방법들이 존재합니다.
다음은 몇 가지 대체 방법과 활용 사례입니다.
concat() 함수 사용:
- 설명: 다른 데이터프레임을 연결하여 헤더 행을 추가하는 방법입니다. 기존 데이터프레임을 변경하지 않고 새로운 데이터프레임을 생성합니다.
- 활용 사례:
- 기존 데이터프레임에 이미 데이터가 있는 경우, 데이터 손실 없이 헤더 행을 추가하고 싶을 때
- 여러 개의 데이터프레임을 하나로 합치면서 헤더 행을 추가하고 싶을 때
import pandas as pd
# 데이터 생성
data = {'A': [10, 20, 30], 'B': [40, 50, 60], 'C': [70, 80, 90]}
df = pd.DataFrame(data)
# 헤더 데이터 생성
header = pd.DataFrame({'번호': [1, 2, 3], '이름': ['철수', '영희', '민수']})
# 헤더 행 추가
df_with_header = pd.concat([header, df], ignore_index=True)
# 출력
print(df_with_header)
iloc 인덱서와 assign() 메서드 사용:
- 설명: 특정 행 위치에 헤더 데이터를 할당하고,
assign()
메서드를 사용하여 새로운 열을 추가하는 방법입니다. - 활용 사례:
- 특정 행 위치에 정확히 헤더 행을 추가하고 싶을 때
- 동시에 새로운 열도 추가하고 싶을 때
import pandas as pd
# 데이터 생성
data = {'A': [10, 20, 30], 'B': [40, 50, 60], 'C': [70, 80, 90]}
df = pd.DataFrame(data)
# 헤더 데이터 생성
header_data = ['번호', '이름', '점수']
# 헤더 행 추가
df.iloc[0] = header_data
df = df.assign(번호=[1, 2, 3]) # 새로운 '번호' 열 추가
# 출력
print(df)
apply() 함수 사용:
- 설명:
apply()
함수를 사용하여 원하는 행에 함수를 적용하여 헤더 행을 추가하는 방법입니다. 좀 더 복잡한 로직을 사용할 수 있습니다. - 활용 사례:
- 조건에 따라 특정 행에만 헤더 행을 추가하고 싶을 때
- 헤더 행에 추가적인 데이터 처리를 수행하고 싶을 때
import pandas as pd
# 데이터 생성
data = {'A': [10, 20, 30], 'B': [40, 50, 60], 'C': [70, 80, 90]}
df = pd.DataFrame(data)
# 헤더 데이터 생성
def add_header(df):
df.loc[0] = ['번호', '이름', '점수']
return df
# 헤더 행 추가
df = df.apply(add_header, axis=1)
# 출력
print(df)
CSV 파일 불러오기:
- 설명: CSV 파일을 헤더 행과 함께 불러오는 방법입니다. 이미 헤더 행이 포함된 CSV 파일을 사용할 경우 편리합니다.
- 활용 사례:
import pandas as pd
# CSV 파일 불러오기 (헤더 행 포함)
df = pd.read_csv('data.csv')
# 출력
print(df)
- 대체 방법을 사용할 때는 각 방법의 특성과 활용 사례를 이해하고, 상황에 맞게 적절하게 선택해야 합니다.
- 코드를 실행하기 전에 데이터 형식과 열 이름 등을 확인하세요
python pandas dataframe