1. 오늘배운 것.
1) 시리즈와 데이터 프레임

2) 데이터 프레임 관련 명령어
iloc[]: 정수형 인덱스로 접근
loc[]: 인덱스 이름으로 접근
isin(): 특정값이 포함되어 있는지 여부 확인
df.drop(axis=1): 컬럼 삭제
df.drop(axis=0): 행 삭제
df.rename(columns={'A':'B'}) : 칼럼명 변경
df.T: 행과 열 전치
3) 데이터 프레임 생성 및 호출해보기
## list 활용
population = [35000, 71000, 16000, 5000]
state = ['Ohio', 'Texas', 'Oregon', 'Utah']
# 1. 데이터프레임 생성
# 데이터프레임을 생성하고, 'Population'과 'State' 칼럼을 포함하며, 인덱스를 ['A', 'B', 'C', 'D']로 설정하세요.
frame = pd.DataFrame({'Population': [population], 'State': [state]}, index=['A', 'B', 'C', 'D'])
print(frame)
# 2. 데이터 조회
# 'State' 컬럼만 출력하려면 어떻게 해야 할까요?
print(frame[state])
print(frame.state)
# 3. 행 접근(iloc, loc)
# iloc를 사용해 두 번째 행(정수 인덱스 1)을 출력하세요.
print(frame.iloc[1])
# loc를 사용해 인덱스 이름이 'B'인 행을 출력하세요.
print(frame.loc['B'])
# 4. 특정 값 접근
# 첫 번째 행의 두 번째 열 값을 iloc와 loc로 각각 접근하세요.
print(frame.iloc[0, 1]) # iloc
print(frame.loc['Population', 'B']) # loc
# 5. 조건부 필터링
# 'State'가 ['Ohio', 'Texas'] 중 하나인 행만 필터링하세요.
print(frame[frame['State'].isin(['Ohio', 'Texas'])])
# 'Population'이 20000 이상인 행만 필터링하세요.
print(frame[frame['Population'] >20000])
4) 데이터 프레임 추가 및 삭제
# 6. 새로운 컬럼 추가
# 새로운 컬럼 'debt'와 'eastern'을 추가하세요.
frame['debt'] = [1.2, 1.5, 1.7, 1.9]
frame['eastern'] = frame.State =="Ohio"
print(frame)
# 7. 새로운 행 추가
# 새로운 행을 추가하세요. 인덱스는 'E', 데이터는 [45000, 'Nevada', 1.8, True]로 설정하세요.
frame.loc['E'] = [45000, 'Nevada', 1.8, True]
print(frame)
# 8. 특정 값 수정
# 'C' 행의 'Population' 값을 40000으로 수정하세요.
frame.loc['C', 'Population'] = 40000
print(frame)
# 9. 컬럼 삭제
# 'eastern' 컬럼을 삭제하세요. del과 drop 두 가지 방법을 사용해 보세요.
del frame['eastern']
frame = frame.drop(columns='eastern')
frame = frame.drop('eastern', axis=1)
# 10. 행 삭제
# 'B' 행을 삭제하세요. inplace 옵션을 활용하세요.
frame.drop(index='B', inplace=false)
print(frame_dropped_row)
# 11. 컬럼 이름 변경
# 'debt' 컬럼 이름을 'Debt'로 변경하세요.
frame.rename(columns={'debt': 'Debt'}, inplace=True)
5) apply 함수와 lambda 함수
# 데이터프레임 생성
df = pd.DataFrame({
"A": [1, 2, 3, 4],
"B": [10, 20, 30, 40]
})
# 행 단위로 계산
df["Sum"] = df.apply(lambda row: row["A"] + row["B"], axis=1)
print(df)
# 결과
A B A_plus_10 Sum
0 1 10 11 11
1 2 20 12 22
2 3 30 13 33
3 4 40 14 44
# 13. 면적 데이터 추가
# 아래 리스트를 사용하여 "Area"라는 새 컬럼을 추가하세요.
area_data = [50000, 70000, 45000, 30000, 3800]
frame["Area"] = area_data
# 14. 인구 밀도 계산
# "Population"과 "Area"를 이용해 "Population_Density"라는 새 컬럼을 만드세요.
frame["Population_Density"] = frame["Population"] / frame["Area"]
# 15. 부채 상태에 따라 범주형 데이터 생성 (리스트 컴프리헨션 사용)
# "debt" 값을 기준으로 1.5 미만이면 "Low", 그렇지 않으면 "High"로 설정한
# 새로운 "Debt_Level" 컬럼을 리스트 컴프리헨션으로 생성하세요.
frame["Debt_Level"] = ["Low" if debt < 1.5 else "High" for debt in frame["debt"]]
6) 데이터의 구조를 확인하는 명령어
# 테이블 전체 확인
df.info()
# 테이블의 행과 열 확인
df.shape
# 테이블 요약 통계량 확인
df.describe()
# 처음 10줄 출력
df.head(10) # df.tail()도 확인
# 각 컬럼 데이터 타입 확인
df.dtypes
2. 느낀점
기존에 배웠었지만 한번더 리마인드 할수 있어서 좋았습니다.
데이터에 대해 심도있게 다룰 수 있어도 전처리나 문제정의에서 문제가 생기면 처리한 데이터에서도 문제가 생기기때문에
기초부터 다시 잡는다는 느낌으로 꼼꼼히 복습하는게 좋을 것 같습니다.