주제: Pandas
내용 : Pandas에 대해 강의 기반 내가 헷갈렸던 부분 위주로 정리를 해보려고 한다.
✍ 입력
import pandas as pd
✍ 입력
# 딕셔너리 만들기
dict1 = {'Name': ['Gildong', 'Sarang', 'Jiemae', 'Yeoin'],
'Level': ['Gold', 'Bronze', 'Silver', 'Gold'],
'Score': [56000, 23000, 44000, 52000]}
# 확인
print(dict1)
✍ 입력
#### 데이터프레임 만들기
df = pd.DataFrame(dict1)
#### 확인
print(df.head())
✍ 출력
Name Level Score
0 Gildong Gold 56000
1 Sarang Bronze 23000
2 Jiemae Silver 44000
3 Yeoin Gold 52000
✍ 입력
# 데이터 읽어오기
path='https://raw.githubusercontent.com/DA4BAM/dataset/master/titanic_simple.csv'
data = pd.read_csv(path)
# 상위 10행만 확인
data.head(10)
# 하위 10행만 확인
data.tail(10)
✍ 입력
# 상위 10개 행 데이터
data.head(10)
# 하위 3개 행 데이터
data.tail(3)
# 행 수와 열 수 확인
data.shape
✍ 입력
# 열 확인
print(data.columns)
print(data.columns.values) # np array 형태
✍ 출력
Index(['Attrition', 'Age', 'DistanceFromHome', 'EmployeeNumber', 'Gender',
'JobSatisfaction', 'MaritalStatus', 'MonthlyIncome', 'OverTime',
'PercentSalaryHike', 'TotalWorkingYears'],
dtype='object')
['Attrition' 'Age' 'DistanceFromHome' 'EmployeeNumber' 'Gender'
'JobSatisfaction' 'MaritalStatus' 'MonthlyIncome' 'OverTime'
'PercentSalaryHike' 'TotalWorkingYears']
✍ 입력
# 데이터프레임을 리스트 함수에 넣으면 열 이름이 리스트로 반환됨.
list(data)
✍ 출력
['Attrition',
'Age',
'DistanceFromHome',
'EmployeeNumber',
'Gender',
'JobSatisfaction',
'MaritalStatus',
'MonthlyIncome',
'OverTime',
'PercentSalaryHike',
'TotalWorkingYears']
✍ 입력
# 열 자료형 확인
data.dtypes
✍ 출력
Attrition int64
Age int64
DistanceFromHome int64
EmployeeNumber int64
Gender object
JobSatisfaction int64
MaritalStatus object
MonthlyIncome int64
OverTime object
PercentSalaryHike int64
TotalWorkingYears int64
dtype: object
✍ 입력
# 열 자료형, 값 개수 확인
data.info()
✍ 출력
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1196 entries, 0 to 1195
Data columns (total 11 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Attrition 1196 non-null int64
1 Age 1196 non-null int64
2 DistanceFromHome 1196 non-null int64
3 EmployeeNumber 1196 non-null int64
4 Gender 1196 non-null object
5 JobSatisfaction 1196 non-null int64
6 MaritalStatus 1196 non-null object
7 MonthlyIncome 1196 non-null int64
8 OverTime 1196 non-null object
9 PercentSalaryHike 1196 non-null int64
10 TotalWorkingYears 1196 non-null int64
dtypes: int64(8), object(3)
memory usage: 102.9+ KB
인덱스를 기준으로 정렬하는 방법과 특정 열을 기준으로 정렬하는 방법이 있습니다.
sort_values() 메소드로 특정 열을 기준으로 정렬합니다.
ascending 옵션을 설정해 오름차순, 내림차순을 설정할 수 있습니다.
ascending=True: 오름차순 정렬(기본값)
ascending=False: 내림차순 정렬
✍ 입력: 단일 열 정렬
data.sort_values(by='MonthlyIncome', ascending=False)
✍ 입력: 복합 열 정렬
data.sort_values(by=['JobSatisfaction', 'MonthlyIncome'], ascending=[True, False])
✍ 입력: 복합 열 정렬 별도로 저장하고, 인덱스 reset
temp = data.sort_values(by=['JobSatisfaction', 'MonthlyIncome'], ascending=[True, False])
temp.reset_index(drop = True)
✍ 입력
# MaritalStatus 열 고유값 확인
print(data['MaritalStatus'].unique())
✍ 출력
['Married' 'Single' 'Divorced']
데이터를 1차 집계 한 후 분석을 진행하는 경우가 많으므로 필히 알아두어야 할 내용입니다.
이후에 배우는 Groupby 기능에서 같이 사용됩니다.
✍ 입력 : MonthlyIncome 열 합계 조회
print(data['MonthlyIncome'].sum())
✍ 출력
7798045
✍ 입력 : 'Age', 'MonthlyIncome' 열 중앙값 확인
print(data[['Age', 'MonthlyIncome']].median())
✍ 출력
Age 36.0
MonthlyIncome 4973.5
dtype: float64