데이터 프레임
pd.read_csv(”marketing_campaign.csv”, **sep=’\t’**)
customer.insert(1, ‘Age’, 2021-customer[’birthYear’])
→ 원하는 위치에 새로운 컬럼 insertcustomer[’Age_Group’] = customer[’Age’].apply(classify_age)
→ age 컬럼에 classify_age 함수를 적용data = customer.pop(’Age_Group’)
→ customer.insert(2, ‘Age_Group’, data’)
customers.apply(total_meat_fish, axis=1)
→ 열 방향으로 함수 적용. 그니까, total_meat_fish 함수가 각 레코드를 인자로 받는다.# 수입을 달러에서 원화로
customers['Income'].apply(lambda x: x*1312) # 시리즈
customers.apply(lambda x: x['Income']*1312, axis=1) # 데이터프레임
# 둘이 같은 결과를 냄
def clf_income(income):
if income>=60000:
return '고임금'
elif income>=30000:
return '평균임금'
else:
return '저임금'
def age_group(row):
if row['age']>80:
return '노년'
~~
people[’DriverLicense’].map({True: ‘Yes’, False: ‘No’})
people.applymap(type)
→ df의 모든 데이터의 type이 나옴people.applymap(str)
→ 모든 데이터의 타입을 object(string)으로people.astype(str)
으로 해도 모든 데이터의 형변환이 되긴 한다.customers['Kidhome'] = customers['Kidhome'].map({0:'자녀 없음', 1:'외동', 2:'다자녀'})
# customers.astype(str).applymap(uppercase)
customers.applymap(str).applymap(uppercase)
customers[’Kidhome’] = customers[’Kidhome’].astype(’uint8’)
customers[’Marital_Status’].replace({’Alone’:’Single’, ‘Absurd’:’Single’, ‘YOLO’:’Single’})
customers[’Marital_Status’].replace([’Alone’, ‘Absurd’, ‘YOLO’], ‘Single’)
df.replace(~)
customers.where(customers[’kidhome’]≥2)
customers.where(customers[’kidhome’]≥2, other='---')
customers.agg({’Income’:max, ‘Kidhome’:’mean’})
customers[['Income','Kidhome']].agg('max')
처럼 적용할 수도 있다.customers.agg({’Income’:[’max’, ‘min’, ‘std’], ‘Kidhome’:’mean’})
customers.equals(customers_copy)
customers == customers_copy
로 비교하면 각 요소별로 ==연산이 돼서 불리안 타입의 데이터프레임을 결과값으로 받는다.index_col = [’Marital_Status’,’ID’]
customers.set_index([’Marital_Status’,’ID’])
customers.index.get_level_values(0)
→ 첫번재 인덱스만 시리즈로 확인customers.swaplevel()
customers.sort_value(”Marital_Status”)
해서 각 그룹별로 정렬해 볼 수 있음customers.loc[’Single’]
→ 즉 인덱스로 ‘single’ 값을 갖는 데이터 조회customers.loc[(’Single’, 5524), ‘Income’]
두 개의 인덱스를 사용해 하나의 특정 값을 조회customers.sort_index(lavel ='Marital_Status',inplace=True)
customers.loc[[’Single’, ‘Alone’, ‘Absurd’, ‘YOLO’ ]]
customers.loc[([’Single’, ‘Alone’, ‘Absurd’, ‘YOLO’ ], [5524, 2114, 92, 4369, 11133]), :]
customers.loc[:, 2114, :]
customers.loc[(**slice(None)**, 2114), ‘Income’]
customers.loc[pd.IndexSlice[:, 2114], ‘Income’]