주제: Pandas
내용 : Pandas에 대해 조회 및 집계를 정리하려고 한다.
✍ 입력
# Attrition 열 조회 : 시리즈로 조회
data['Attrition']
✍ 출력
0 0
1 0
2 0
3 0
4 1
..
1191 0
1192 0
1193 0
1194 0
1195 0
Name: Attrition, Length: 1196, dtype: int64
✍ 입력
# Attrition, Age 열 조회 : 데이터프레임으로 조회
# 대괄호 안에 또 대괄호로 읽지 마시고, 대괄호 안에 리스트!!!
data[['Attrition', 'Age' ]]
✍ 출력
Attrition Age
0 0 33
1 0 35
2 0 42
3 0 46
4 1 22
... ... ...
1191 0 32
1192 0 27
1193 0 29
1194 0 29
1195 0 43
1196 rows × 2 columns
✍ 입력 : Pandas 보충문제
# Age, DistanceFromHome, Gender열만 DistanceFromHome 열 기준으로 내림차순 정렬
data[['Age', 'DistanceFromHome', 'Gender']].sort_values(by=['Age', 'DistanceFromHome', 'Gender'], ascending=False)
✍ 입력
data['DistanceFromHome'] > 10
✍ 입력
data.loc[(data['DistanceFromHome'] > 10) & (data['JobSatisfaction'] == 4)]
✍ 입력 : 값 나열
data.loc[data['JobSatisfaction'].isin([1,4])]
✍ 입력 : 범위 지정
data.loc[data['Age'].between(25, 30)]
# MonthlyIncome 합계
data['MonthlyIncome'].sum()
✍ 출력
7798045
✍ 입력
# MonthlyIncome, TotalWorkingYears 각각의 평균
data[['MonthlyIncome', 'TotalWorkingYears']].mean()
✍ 출력
MonthlyIncome 6520.104515
TotalWorkingYears 11.330268
dtype: float64
✍ 입력
# MaritalStatus 별 Age 평균 --> 시리즈
data.groupby('MaritalStatus', as_index=True)['Age'].mean()
✍ 출력
MaritalStatus
Divorced 37.522727
Married 37.704380
Single 35.460938
Name: Age, dtype: float64
✍ 입력 : MaritalStatus 별 Age 평균 --> 데이터프레임
data.groupby('MaritalStatus', as_index=True)[['Age']].mean()
✍ 출력
Age
MaritalStatus
Divorced 37.522727
Married 37.704380
Single 35.460938
- as_index=False를 설정하면 행 번호를 기반으로 한 정수 값이 인덱스로 설정됩니다.
✍ 입력
# MaritalStatus 별 Age 평균 --> 데이터프레임
data.groupby('MaritalStatus', as_index=False)[['Age']].mean()
✍ 출력
MaritalStatus Age
0 Divorced 37.522727
1 Married 37.704380
2 Single 35.460938
✍ 입력
data.groupby('MaritalStatus', as_index=False)[['Age','MonthlyIncome']].mean()
✍ 출력
MaritalStatus Age MonthlyIncome
0 Divorced 37.522727 6707.018939
1 Married 37.704380 6880.144161
2 Single 35.460938 5877.794271
✍ 입력
data.groupby('MaritalStatus', as_index=False).sum()
✍ 입력
# 'MaritalStatus', 'Gender'별 나머지 열들 평균 조회
data_sum = data.groupby(['MaritalStatus', 'Gender'], as_index=False)[['Age','MonthlyIncome']].mean()
# 확인
data_sum
df.groupby( ).agg(['함수1','함수2', ...])
✍ 입력
data_agg = data.groupby('MaritalStatus', as_index=False)[['MonthlyIncome']].agg(['min','max','mean'])
# 확인
data_agg