티스토리 뷰

안녕하세요 여러분, 오늘은 판다스(Pandas) 라이브러리를 이용하여 기본적인 데이터 처리를 해보는 실습을 진행해볼 것입니다. 먼저, 아이리스 데이터셋을 불러와서 간단한 데이터 선택 방법을 알아봅시다.

from sklearn.datasets import load_iris
import pandas as pd

iris = load_iris()
iris = pd.DataFrame(iris.data, columns=iris.feature_names)

위 코드에서는 사이킷런의 load_iris() 함수를 사용하여 아이리스 데이터셋을 불러온 후, 이를 판다스 데이터 프레임으로 변환했습니다.

print(iris[1:4])
print(iris[:4])  # compare it with iris[1:4]

위 코드는 슬라이싱(slicing)을 사용하여 데이터 프레임에서 일부 행을 선택합니다. iris[1:4]는 인덱스 1에서 3까지의 행을 선택하며, iris[:4]는 인덱스 0에서 3까지의 행을 선택합니다.

print(f"iris.iloc[0:4] \n {iris.iloc[0:4]}")  # same as iris[:4]
print(f"iris.loc[0:4] \n {iris.loc[0:4]}")

이전에 설명한대로, iloc()는 인덱스 기반 위치를 사용하여 데이터를 선택하며, loc()는 레이블 기반 위치를 사용합니다. 위 코드에서 iris.iloc[0:4]iris[:4]와 동일하게 인덱스 0에서 3까지의 행을 선택하며, iris.loc[0:4]는 인덱스 0에서 4까지의 행을 선택합니다.

print("")
print(iris['sepal length (cm)'].head(4))
print(iris[['sepal length (cm)', 'sepal width (cm)']].head(4))

print(iris.iloc[[1, 3, 5], 2:])
print(iris.iloc[:, [True, True, False, True]])

print(iris.loc[1:3])
print(iris.iloc[1:3])

위 코드는 열(column)을 선택하는 다양한 방법을 보여줍니다. iris['sepal length (cm)'].head(4)는 'sepal length (cm)' 열의 상위 4개 행을 선택합니다. iris[['sepal length (cm)', 'sepal width (cm)']].head(4)는 두 열을 동시에 선택하며, 상위 4개 행을 출력합니다. iloc()와 loc()을 사용하여 행과 열을 동시에 선택할 수도 있습니다.

이제 예제 데이터를 사용하여 데이터 프레임을 조작하는 방법을 알아봅시다.

score = pd.DataFrame({'국어어': [100, 80], '수학': [75, 90], '영어': [90, 95]}, index=['장화', '홍련'])
print(score)

score.loc['홍련', '영어'] = 100
print(score)

score['국어'] = score['국어'] - 5
print(score)

new_student = pd.DataFrame({'국어': [70, 85], '수학': [100, 70], '영어': [95, 65]}, index=['콩쥐', '팥쥐'])
score = score.append(new_student)
print(score)

new_student1 = pd.Series({'국어': 75, '수학': 80, '영어': 80}, name='해님')
score = score.append(new_student1)
print(score)

science = [80, 90, 85, 75, 66]
score['과학'] = science
score['학년'] = 1
print(score)

score['과학'] = score['과학'] + 5
score['총점'] = score['영어'] + score['국어'] + score['수학'] + score['과학']
print(score)

score.drop('장화', inplace=True)
print(score)
score.drop(columns=['과학', '학년', '총점'], inplace=True)
print(score)


위 코드에서는 데이터 프레임을 생성하고, 데이터를 업데이트하며, 행과 열을 추가하고 삭제하는 방법을 다룹니다.

1. `score` 데이터 프레임을 생성한 후, 홍련의 영어 점수를 업데이트합니다.
2. 모든 학생의 국어 점수를 5점씩 감소시킵니다.
3. `new_student` 데이터 프레임을 생성하고, 기존의 `score` 데이터 프레임에 추가합니다.
4. `new_student1` 시리즈를 생성하고, 기존의 `score` 데이터 프레임에 추가합니다.
5. 과학 점수를 추가하고, 모든 학생의 학년을 1로 설정합니다.
6. 과학 점수를 5점씩 증가시키고, 각 학생의 총점을 계산하여 데이터 프레임에 추가합니다.
7. '장화' 행을 삭제합니다.
8. '과학', '학년', '총점' 열을 삭제합니다.

이 글을 통해 판다스에서 데이터 프레임을 조작하는 기본적인 방법을 배울 수 있었기를 바랍니다. 다음 글에서 더 심화된 데이터 처리 기법을 다루겠습니다. 

728x90
반응형
댓글
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함
공지사항