티스토리 뷰
안녕하세요 여러분, 오늘은 판다스(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. '과학', '학년', '총점' 열을 삭제합니다.
이 글을 통해 판다스에서 데이터 프레임을 조작하는 기본적인 방법을 배울 수 있었기를 바랍니다. 다음 글에서 더 심화된 데이터 처리 기법을 다루겠습니다.
'머신러닝 파이썬' 카테고리의 다른 글
pandas value_counts()함수를 이용하여 bar차트 그리기 (0) | 2023.05.02 |
---|---|
대출 소득 데이터 시각화: 샘플 크기에 따른 평균의 분포 비교(feat. seaborn, 중심극한정리) (0) | 2023.04.27 |
판다스(Pandas)에서 iloc()과 loc()의 차이점 이해하기 (0) | 2023.04.20 |
경사하강법을 사용한 선형회귀 문제 풀이(feat. python) (0) | 2023.04.17 |
파이썬을 활용한 데이터 처리 기초: Pandas와 Scikit-learn 소개 (0) | 2023.04.14 |