6번째 컬럼의 데이터 타입을 확인하라
수치형 변수를 가진 컬럼을 출력하라
Ans = df.select_dtypes(exclude=object).columns
범주형 변수를 가진 컬럼을 출력하라
Ans = df.select_dtypes(include=object).columns
거주인구 컬럼의 값들을 출력하라
Ans = df['거주인구']
읍면동명 컬럼의 유일값 갯수를 출력하라
Ans = df.읍면동명.nunique()
quantity , item_price 두개의 컬럼으로 구성된 새로운 데이터 프레임을 정의하라
Ans =df[['quantity','item_price']]
item_price 컬럼의 달러표시 문자를 제거하고 float 타입으로 저장하여 new_price 컬럼에 저장하라
df['new_price'] = df['item_price'].str[1:].astype('float')
df의 item_name 컬럼 값중 Chips 포함하는 경우의 데이터를 출력하라
Ans = df.loc[df.item_name.str.contains('Chips')]
df의 짝수번째 컬럼만을 포함하는 데이터프레임을 출력하라
Ans = df.iloc[:,::2]
df의 item_name 컬럼 값이 Steak Salad 또는 Bowl 인 데이터를 데이터 프레임화 한 후, item_name를 기준으로 중복행이 있으면 제거하되 첫번째 케이스만 남겨라
Ans = df.loc[(df.item_name =='Steak Salad') | (df.item_name =='Bowl')]
Ans = Ans.drop_duplicates('item_name')
df의 데이터 중 item_name의 값이 Izze 데이터를 Fizzy Lizzy로 수정하라
df.loc[df.item_name =='Izze','item_name'] = 'Fizzy Lizzy'
df의 데이터 중 choice_description 값에 Black이 들어가는 경우를 인덱싱하라
Ans = df[df.choice_description.str.contains('Black')]
df의 데이터 중 choice_description 값에 Vegetables 들어가지 않는 경우의 갯수를 출력하라
Ans = len(df.loc[~df.choice_description.str.contains('Vegetables')])
df의 데이터 중 item_name 값이 N으로 시작하는 데이터를 모두 추출하라
Ans = df[df.item_name.str.startswith('N')]
df의 데이터 중 item_name 값의 단어갯수가 15개 이상인 데이터를 인덱싱하라
Ans= df[df.item_name.str.len() >=15]
데이터의 각 host_name의 빈도수를 구하고 host_name으로 정렬하여 상위 5개를 출력하라
Ans = df.groupby('host_name').size()
# or
Ans = df.host_name.value_counts().sort_index()
neighbourhood_group의 값에 따른 neighbourhood컬럼 값의 갯수를 구하여라
Ans = df.groupby(['neighbourhood_group','neighbourhood'], as_index=False).size()
neighbourhood_group의 값에 따른 neighbourhood컬럼 값 중 neighbourhood_group그룹의 최댓값들을 출력하라
Ans= df.groupby(['neighbourhood_group','neighbourhood'], as_index=False).size()\
.groupby(['neighbourhood_group'], as_index=False).max()
neighbourhood_group 값에 따른 price값의 평균, 분산, 최대, 최소 값을 구하여라
Ans = df[['neighbourhood_group','price']].groupby('neighbourhood_group').agg(['mean','var','max','min'])
neighbourhood 값과 neighbourhood_group 값에 따른 price 의 평균을 구하라
Ans = df.groupby(['neighbourhood','neighbourhood_group']).price.mean()
neighbourhood 값과 neighbourhood_group 값에 따른 price 의 평균을 계층적 indexing 없이 구하라
Ans = df.groupby(['neighbourhood','neighbourhood_group']).price.mean().unstack()
dic = {
'Unknown' : 'N',
'Less than $40K' : 'a',
'$40K - $60K' : 'b',
'$60K - $80K' : 'c',
'$80K - $120K' : 'd',
'$120K +' : 'e'
}
df['newIncome'] =df.Income_Category.map(lambda x: dic[x])
Ans = df['newIncome']
Income_Category의 카테고리를 apply 함수를 이용하여 다음과 같이 변경하여 newIncome 컬럼에 매핑하라 Unknown : N
Less than $40K : a
$40K - $60K : b
$60K - $80K : c
$80K - $120K : d
$120K +’ : e
def changeCategory(x):
if x =='Unknown':
return 'N'
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)
Customer_Age의 값을 이용하여 나이 구간을 AgeState 컬럼으로 정의하라. (0~9 : 0 , 10~19 :10 , 20~29 :20 … 각 구간의 빈도수를 출력하라
df['AgeState'] = df.Customer_Age.map(lambda x: x//10 *10)
Ans = df['AgeState'].value_counts().sort_index()
Education_Level의 값중 Graduate단어가 포함되는 값은 1 그렇지 않은 경우에는 0으로 변경하여 newEduLevel 컬럼을 정의하고 빈도수를 출력하라
df['newEduLevel'] = df.Education_Level.map(lambda x : 1 if 'Graduate' in x else 0)
Ans = df['newEduLevel'].value_counts()
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['newState'] = df.apply(check,axis=1)
Ans = df['newState'].value_counts()
Yr_Mo_Dy을 판다스에서 인식할 수 있는 datetime64타입으로 변경하라
df.Yr_Mo_Dy = pd.to_datetime(df.Yr_Mo_Dy)
Ans = df.Yr_Mo_Dy
Yr_Mo_Dy에 년도가 2061년 이상의 경우에는 모두 잘못된 데이터이다. 해당경우의 값은 100을 빼서 새롭게 날짜를 Yr_Mo_Dy 컬럼에 정의하라
def fix_century(x):
import datetime
year = x.year - 100 if x.year >= 2061 else x.year
return pd.to_datetime(datetime.date(year, x.month, x.day))
df['Yr_Mo_Dy'] = df['Yr_Mo_Dy'].apply(fix_century)
Ans = df.head(4)
모든 결측치는 컬럼기준 직전의 값으로 대체하고 첫번째 행에 결측치가 있을경우 뒤에있는 값으로 대채하라
df = df.fillna(method='ffill').fillna(method='bfill')
년도 - 월을 기준으로 모든 컬럼의 평균값을 구하여라
Ans = df.groupby(df.Yr_Mo_Dy.dt.to_period('M')).mean()
RPT 컬럼의 값을 일자별 기준으로 1차차분하라
Ans = df['RPT'].diff()
RPT와 VAL의 컬럼을 일주일 간격으로 각각 이동평균한값을 구하여라
Ans= df[['RPT','VAL']].rolling(7).mean()
def change_date(x):
import datetime
hour = x.split(':')[1]
date = x.split(":")[0]
if hour =='24':
hour ='00:00:00'
FinalDate = pd.to_datetime(date +" "+hour) +datetime.timedelta(days=1)
else:
hour = hour +':00:00'
FinalDate = pd.to_datetime(date +" "+hour)
return FinalDate
df['(년-월-일:시)'] = df['(년-월-일:시)'].apply(change_date)
Ans = df
일자별 영어요일 이름을 dayName 컬럼에 저장하라
df['dayName'] =df['(년-월-일:시)'].dt.day_name()
일자별 각 PM10등급의 빈도수를 파악하라
Ans1 = df.groupby(['dayName','PM10등급'],as_index=False).size()
Ans2 = Ans1.pivot(index='dayName',columns='PM10등급',values='size').fillna(0)
날짜 컬럼을 index로 만들어라
df.set_index('(년-월-일:시)',inplace=True,drop=True)
데이터를 주단위로 뽑아서 최소,최대 평균, 표준표차를 구하여라
Ans = df.resample('W').agg(['min','max','mean','std'])
Dim1에 따른 년도별 사망비율의 평균을 구하라
Ans = df.pivot_table(index='Dim1',columns='Period',values='First Tooltip',aggfunc='mean')
total = pd.concat([df1,df2])
'공부하자, 학문적 지식' 카테고리의 다른 글
| 스테이블 디퓨전 (stable diffusion) 1화 (0) | 2024.02.13 |
|---|---|
| DAS / NAS / SAN / 스토리지 등 IT인프라 용어정리 (0) | 2020.03.05 |
| 2020년 공인중개사 시험 일정 알려드려요 (0) | 2020.01.03 |
| 주민등록번호 뒷자리 의미 및 변경방법 (0) | 2019.12.31 |
| [C++ 초보 예제] 1인용 빙고 게임 (0) | 2019.11.30 |