ADP/실기
Row/Column 선택, 추가, 삭제, 조건에 따른 선택 및 삭제
hyerimir
2024. 1. 21. 16:10
# 이전 글에서 iris_data 변수 생성한 것 기반으로 작성
iris_data[['sepal length', 'sepal width']].head(2)
iris_data.loc[[4,5,10], ['sepal length', 'target']]
iris_data.iloc[0:7, 0:2]
iris_data['temp'] = range(0, 150)
iris_data = iris_data.drop(columns = ['temp', 'temp2])
drop_idx = [150, 151]
iris_data.drop(drop_idx, inplace = True)
# 결측치가 있는 모든 행 삭제, 하나라도 결측값 있을시 삭제됨
iris_data.dropna(inplace = True)
# 중복 값 삭제
iris_data[['target', 'count']].drop_duplicates()
# &와 |가 우선순위가 높아, 먼저 계산됨
import pandas as pd
import numpy as np
df_t = pd.read_csv('../../data/titanic.csv')
df_t.head()
df_t[df_t['survived'] == 1]
df_t.loc[df_t['survived'] == 1, 'temp'] = 99999
df_t.loc[df_t.age > 30, 'temp2'] = '30대 초과입니다.'
# 주의 : 데이터프레임으로 접근하여 값을 대입하면 오류 발생함
# np.where(condition, x, y) : 조건이 충족되면 x, 그렇지 않으면 y 반환
df_t['alive'] = np.where(df_t['survived'] == 1, 'Yes', 'No')
# np.select()
# 조건 목록과 선택 목록을 입력으로 받아서 조건에 따라 선택 목록의 요소로 구성된 배열을 반환
# 두 개 이상의 조건이 있을 때, Pandas의 주어진 조건을 기반으로 DataFrame 열을 만들 수 있음
conditionlist = [(df_t['age'] >= 19),(df_t['age'] > =8) & ( df_t['age'] < 19),
(df_t['age'] < 8)]
choicelist = ['성인', '초중고등학생', '미취학아동']
df_t['status'] = np.select(conditionlist, choicelist, default = 'Not_Specified')