파이썬 pandas에서 데이터프레임의 헤더를 변경하는 방법은?
_____A1: `df.columns` 속성에 새로운 리스트를 할당하면 됩니다.
```python
df.columns = ['새헤더1', '새헤더2', '새헤더3']
```
리스트 길이는 기존 컬럼 수와 같아야 합니다.
---
Q2: 특정 컬럼명만 선택적으로 변경하려면 어떻게 하나요?
A2: `rename()` 메서드를 사용하면 됩니다. 딕셔너리로 변경할 컬럼명만 지정합니다.
```python
df.rename(columns={'기존컬럼명': '새컬럼명'}, inplace=True)
```
`inplace=True`로 원본 데이터프레임을 직접 수정합니다.
---
Q3: 컬럼명을 소문자나 대문자로 일괄 변경하고 싶을 때는?
A3: `str.lower()`, `str.upper()` 메서드를 `columns`에 적용하면 됩니다.
```python
df.columns = df.columns.str.lower() 모두 소문자
df.columns = df.columns.str.upper() 모두 대문자
```
---
Q4: 여러 컬럼명을 한꺼번에 변경할 때 `rename()`과 `columns` 할당 중 어떤 것을 쓰는 게 좋나요?
A4: 전체 컬럼명을 다 바꿀 때는 `df.columns = [...]`가 간단합니다.
특정 컬럼명만 바꿀 때는 `df.rename()`가 더 편리하고 안전합니다.
---
Q5: 헤더가 없는 CSV 파일을 불러온 뒤 컬럼명을 지정하는 방법은?
A5: `read_csv()`에서 `header=None`으로 읽고 `names` 옵션을 사용하거나, 불러온 후 지정할 수 있습니다.
```python
```
또는
```python
df = pd.read_csv('file.csv', header=None)
df.columns = ['A', 'B', 'C']
```
---
Q6: MultiIndex 컬럼 헤더가 있을 때 컬럼명을 변경하려면?
A6: 튜플 형태로 지정하거나 `set_names()`를 사용합니다.
```python
df.columns = [('새이름1', '새이름2'), ...]
또는
df.columns.set_names(['레벨1', '레벨2'], inplace=True)
```
---
Q7: 컬럼명에 공백이나 특수문자가 있으면 어떻게 수정할 수 있나요?
A7: `str.strip()`, `str.replace()` 등 문자열 메서드를 사용할 수 있습니다.
```python
df.columns = df.columns.str.strip() 양끝 공백 제거
df.columns = df.columns.str.replace(' ', '_') 공백을 언더바로 변경
```
---
Q8: 변경한 컬럼명이 바로 반영되나요?
A8: `df.columns = ...` 할당은 즉시 반영됩니다.
`rename()`은 `inplace=True` 옵션을 쓰거나 결과를 새로운 변수에 할당해야 반영됩니다.
---
이 외에도 pandas 공식 문서의 [rename](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rename.html), [columns](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.columns.html) 항목에서 자세한 내용을 확인할 수 있습니다.
여기에서 가장 일반적인 방법들을 소개하겠습니다.
1. `columns` 속성 사용하기 가장 간단한 방법은 데이터프레임의 `columns` 속성을 사용하여 새로운 열 이름의 목록을 직접 할당하는 것입니다.
```python import pandas as pd 샘플 데이터프레임 생성 data = { 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] } df = pd.DataFrame(data) 기존 데이터프레임 출력 print("기존 데이터프레임:") print(df) 열 이름 변경 df.columns = ['X', 'Y', 'Z'] 변경된 데이터프레임 출력 print("\n변경된 데이터프레임:") print(df) ```
2. `rename` 메서드 사용하기 특정 열 이름만 변경하고 싶을 경우 `rename()` 메서드를 사용할 수 있습니다.
이 방법은 변경할 열 이름과 새로운 이름을 매핑하는 딕셔너리를 사용합니다.
```python 열 이름 변경 (특정 열만) df.rename(columns={'X': 'A_new', 'Y': 'B_new'}, inplace=True) 변경된 데이터프레임 출력 print("\n특정 열 이름 변경된 데이터프레임:") print(df) ```
3. `set_axis` 메서드 사용하기 `set_axis()` 메서드를 사용하여 열 이름을 변경할 수 있습니다.
이 메서드는 새로운 열 이름의 리스트를 받고, `axis` 매개변수로 1을 지정해 주어야 합니다.
```python set_axis 메서드를 사용한 열 이름 변경 df = df.set_axis(['Col1', 'Col2', 'Col3'], axis=1, inplace=False) 변경된 데이터프레임 출력 print("\nset_axis()를 사용한 데이터프레임:") print(df) ```
4. `add_prefix` 및 `add_suffix` 메서드 사용하기 열 이름에 접두사 또는 접미사를 추가하려면 `add_prefix()` 또는 `add_suffix()` 메서드를 사용할 수 있습니다.
```python 열 이름에 접두사 추가 df = df.add_prefix('Prefix_') 변경된 데이터프레임 출력 print("\n접두사가 추가된 데이터프레임:") print(df) 열 이름에 접미사 추가 df = df.add_suffix('_Suffix') 변경된 데이터프레임 출력 print("\n접미사가 추가된 데이터프레임:") print(df) ``` 이러한 방법들을 통해 Pandas에서 데이터프레임의 헤더를 쉽게 변경할 수 있습니다.
필요에 따라 적절한 방법을 선택하여 사용하시면 됩니다.
작성자:
박주희 [비회원]
| 작성일자: 1년 전
2025-02-10 05:31:11
조회수: 193 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 193 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.