파이썬 기초 익히기4
Q56. 데이터를 로드하고 데이터 행과 열의 갯수를 출력하라
import pandas as pd
DriveUrl = 'https://drive.google.com/~'
df = pd.read_csv(DriveUrl)
Ans = df.shape
Ans
Q57. Income_Category의 카테고리를 map 함수를 이용하여 다음과 같이 변경하여 newIncome 컬럼에 매핑하라
Unknown : N
Less than $40K : a
$40K - $60K : b
$60K - $80K : c
$80K - $120K : d
$120K +’ : e
## dictionary: 한쌍의 데이터로 이루어짐(mapping할 때 사용)
dic = {
'Unknown' : 'N',
'Less than $40K' : 'a',
'$40K - $60K' : 'b',
'$60K - $80K' : 'c',
'$80K - $120K' : 'd',
'$120K +' : 'e'
}
df['newIncome'] = df.Income_Category.map(lamda x: dic[x])
## 2개 이상의 컬럼 출력할 때는 []로 묶어주기
Ans = df[['newIncome' , 'Income_Category']]
Ans.head()
Q58. Income_Category의 카테고리를 apply 함수를 이용하여 다음과 같이 변경하여 newIncome 컬럼에 매핑하라
## 사용자 정의 함수
def changeCategory(x):
if x == 'Unknown':
return 'N'
elif x == 'elif x =='Less than $40K':
return 'a'
elif x =='$40K - $60K':
return 'b'
elif x =='$60K - $80K':
return 'c'
elif x =='$80K - $120K':
return 'd'
elif x =='$120K +' :
return 'e'
df['newIncome'] = df.Income_Category.apply(changeCategory)
Ans = df[['newIncome','Income_Category']]
Ans.head()
✔ dictionary를 만들면 map()사용
✔ def(사용자정의함수)를 만들면 apply() 사용
Q59. Customer_Age의 값을 이용하여 나이 구간을 AgeState 컬럼으로 정의하라. (0-9: 0 , 10-19: 10 , 20-29: 20) … 각 구간의 빈도수를 출력하라
#1
df['AgeState'] = df.Customer_Age.map(lamda x: x//10 * 10)
#2
df['AgeState'] = df.Customer_Age.apply(lamda x: x//10 * 10)
Ans = df['AgeState'].value_counts().sort_index()
Ans
✔ 숫자//숫자 -> 나눗셈을 한다음 몫을 나타내줌
✔ map(), apply() 둘 다 사용 가능
Q60. Education_Level의 값중 Graduate단어가 포함되는 값은 1 그렇지 않은 경우에는 0으로 변경하여 newEduLevel 컬럼을 정의하고 빈도수를 출력하라
#1
df['newEduLevel'] = df.Education_Level.map(lambda x : 1 if 'Graduate' in x else 0)
Ans = df['newEduLevel'].value_counts()
Ans
#2
import numpy as np
df['newEduLevel'] = np.where( df.Education_Level.str.contains('Graduate'), 1, 0)
Ans = df['newEduLevel'].value_counts()
Ans
Q61. Credit_Limit 컬럼값이 4500 이상인 경우 1 그외의 경우에는 모두 0으로 하는 newLimit 정의하라. newLimit 각 값들의 빈도수를 출력하라
#1
df['newLimit'] = df.Credit_Limit.map(lambda x : 1 if x>=4500 else 0)
Ans = df['newLimit'].value_counts()
Ans
#2
df['newLimit'] = df.Credit_Limit.apply(lambda x : 1 if x>=4500 else 0)
Ans = df['newLimit'].value_counts()
Ans
import numpy as np
df['newLimit'] = np.where( df.Credit_Limit >= 4500 , 1, 0)
Ans = df['newLimit'].value_counts()
Ans
Q62. Marital_Status 컬럼값이 Married 이고 Card_Category 컬럼의 값이 Platinum인 경우 1 그외의 경우에는 모두 0으로 하는 newState컬럼을 정의하라. newState의 각 값들의 빈도수를 출력하라
def check(x):
if x.Marital_Status == 'Married' and x.Card_Category == 'Platinum':
return 1
else:
return 0
## 조건이 두가지 컬럼에 대한 것이기 때문에 df 전체에 apply함수를 적용시키고 열기준으로 수행
df['newState'] = df.apply(check,axis=1)
Ans =df['newState'].value_counts()
Ans
Q63. Gender 컬럼값 M인 경우 male F인 경우 female로 값을 변경하여 Gender 컬럼에 새롭게 정의하라. 각 value의 빈도를 출력하라
def changeGender(x):
if x == 'M':
return 'male'
else:
retutn 'female'
df['Gender'] = df.Gender.apply(changeGender)
Ans = df.Gender.value_counts()
Ans
'제로베이스 > Python' 카테고리의 다른 글
| Python 6. Pivot (0) | 2024.06.29 |
|---|---|
| Python 5. Time_Series (0) | 2024.06.29 |
| python3. Grouping (0) | 2024.06.28 |
| Python 2. Filtering & Sorting (0) | 2024.06.27 |
| Python 1. Getting & Knowing Data (0) | 2024.06.27 |