[Python] 02. Pandas 데이터프레임 데이터 변형하기

판다스 데이터프레임은 데이터를 변형하고 조작하는 다양한 방법을 제공합니다.
이를 통해 데이터프레임 구조를 변경하거나, 새로운 열을 추가하고, 행을 삭제하며, 데이터를 변환하고 정제할 수 있습니다.

다음은 판다스 데이터프레임을 변형하는 일반적인 방법과 예제입니다.

데이터프레임 열 추가 및 삭제

열 추가

df['새로운 열'] = 값을 사용하여 데이터프레임에 새로운 열을 추가할 수 있습니다.
예를 들어, 다음은 ‘age’ 열을 추가하는 예제입니다.

import pandas as pd

data = {'name': ['John', 'Emma', 'Peter'],
        'gender': ['Male', 'Female', 'Male']}

df = pd.DataFrame(data)
df['age'] = [25, 28, 30] 
print(df)

출력 결과

     name     gender      age 
0    John      Male       25 
1    Emma     Female      28 
2   Peter      Male       30

판다스 데이터프레임에 열을 추가하는 방법은 다양합니다.
열을 추가하기 위해서는 새로운 열의 이름과 값을 지정해야 합니다.
아래 예제들을 통해 열 추가 방법을 더 살펴보겠습니다.

예제 : 단일 값으로 열 추가하기

import pandas as pd

data = {'Name': ['John', 'Emma', 'Peter'],
        'Gender': ['Male', 'Female', 'Male']}
df = pd.DataFrame(data)

# 'Age' 열 추가
df['Age'] = 25
print(df)

출력 결과

      Name     Gender      Age
0     John      Male       25
1     Emma     Female      25
2     Peter     Male       25

예제 : 리스트로 열 추가하기

import pandas as pd

data = {'Name': ['John', 'Emma', 'Peter'],
        'Gender': ['Male', 'Female', 'Male']}
df = pd.DataFrame(data)

# 'Age' 열 추가
age_list = [25, 28, 30]
df['Age'] = age_list
print(df)

출력 결과

      Name     Gender     Age
0     John      Male       25
1     Emma     Female      28
2     Peter     Male       30

예제 : 다른 열을 기반으로 계산하여 열 추가하기

import pandas as pd

data = {'Name': ['John', 'Emma', 'Peter'],
        'Gender': ['Male', 'Female', 'Male'],
        'Age': [25, 28, 30]}
df = pd.DataFrame(data)

# 'Age_plus_10' 열 추가 (기존 'Age' 열의 값에 10을 더함)
df['Age_plus_10'] = df['Age'] + 10
print(df)

출력 결과

      Name     Gender     Age     Age_plus_10
0     John      Male       25         35
1     Emma     Female      28         38
2     Peter     Male       30         40

예제 : 함수를 활용하여 열 추가하기

import pandas as pd

data = {'Name': ['John', 'Emma', 'Peter'],
        'Gender': ['Male', 'Female', 'Male']}
df = pd.DataFrame(data)

# 함수를 정의하여 'Age' 열 추가
def calculate_age(year):
    current_year = 2023
    return current_year - year

df['Age'] = df['Name'].apply(lambda x: calculate_age(1990))
print(df)

출력 결과

      Name     Gender    Age
0     John      Male      33
1     Emma     Female     33
2     Peter     Male      33

열 삭제

df.drop('열 이름', axis=1)을 사용하여 데이터프레임에 열을 삭제할 수 있습니다.
예를 들어, ‘age’ 열을 삭제하는 예제입니다.

df = df.drop('age', axis=1)
print(df)

출력 결과

       name     gender 
0      John      Male 
1      Emma     Female 
2     Peter      Male

데이터프레임 행 추가 및 삭제

행 추가

df.loc[인덱스] = 값을 사용하여 데이터프레임에 새로운 행을 추가할 수 있습니다.
예를 들어, 다음은 새로운 행을 추가하는 예제입니다.

new_row = {'name': 'Alex', 'gender': 'Male'}
df.loc[3] = new_row
print(df)

출력 결과

      name     gender
0     John      Male
1     Emma     Female
2     Peter     Male
3     Alex      Male

행 삭제

df.drop(인덱스)를 사용하여 데이터프레임의 행을 삭제할 수 있습니다.
예를 들어, 인덱스 2에 해당하는 행을 삭제하는 예제입니다.

df = df.drop(2)
print(df)

출력 결과

      name     gender
0     John      Male
1     Emma     Female
3     Alex      Male

데이터 변환

열 변환

df['열 이름'] = df['열 이름'].apply(변환 함수)을 사용하여 데이터프레임의 열 값을 변환할 수 있습니다.
예를 들어, ‘age’ 열의 값을 10을 곱하는 예제입니다.

df['age'] = df['age'].apply(lambda x: x * 10)
print(df)

출력 결과

      name     gender     age
0     John      Male      250
1     Emma     Female     280
3     Alex      Male      300

조건에 따른 값 변환

df.loc[조건, '열 이름'] = 변환 값을 사용하여 특정 조건에 따라 값의 일부를 변환할 수 있습니다.
예를 들어, ‘age’ 열에서 250보다 작은 값을 0으로 변환하는 예제입니다.

df.loc[df['age'] < 250, 'age'] = 0
print(df)

출력 결과

      name     gender     age
0     John      Male       0
1     Emma     Female     280
3     Alex      Male      300

이 외에도 판다스는 데이터프레임을 다양한 방법으로 변형할 수 있는 함수와 메서드를 제공합니다.
데이터의 정렬, 그룹화, 결측치 처리, 피벗 테이블 생성 등 다양한 작업을 수행할 수 있습니다.
이러한 기능들은 데이터 처리와 분석 작업에서 유용하게 활용됩니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤