오늘은 교수님께서 마지막으로 데이터 분석에 대해 복습시켜 주신 뒤 과제를 내주셨어요!
처음 1번 문제부터 오류가 발생하여 조금 당황했지만 곧 잘 헤쳐나가는 제 모습이 아주 멋졌답니다 ㅎㅎ
내주신 문제는 이러합니다.
어떻게 할까 고민할 필요도 없이 pd.read_csv를 활용...하면 안 되겠죠?
처음에 pandas를 import해준 뒤, 문제에 나온 대로 pd.read_csv를 해준 뒤, 경로를 입력해 준 뒤, encoding = 'CP949'를 해주며 한글 파일의 깨짐이 없도록 해주고, df_trade에 저장해 두었습니다. 그래서 나온 코드는 이러합니다.
import pandas as pd
df_trade = pd.read_csv('./data/아파트(매매)_실거래가_서울_2022.CSV', skiprows=16, encoding='CP949')
df_trade.shape
(12685, 15)
결과는 이러합니다. (무려 12685 rows...)
꼭 저장 한 뒤, df_trade를 활용해 실행시켜 보면 좋을 거 같아요!
2번 문제는 이러했는데요, 코드부터 보여 드리겠습니다.
cond = df_trade['해제사유발생일'].isnull()
df_trade = df_trade.loc[cond]
df_trade['평당거래금액(만원)'] = df_trade['거래금액(만원)'] / df_trade['전용면적(㎡)']
df_trade
cond에 '해제사유발생일' 컬럼의 값이 null인지 확인하는 조건을 둡니다.
두 번째 열은 cond가 참인 행만 포함하도록 데이터 프레임 df_trade를 필터링합니다. ('해제사유발생일'이 null인 행들만 포함)
세 번째 열은 산술식대로 대입해 주었습니다.
네 번째 열은 수정된 df_trade를 출력해 주었습니다.
target = df_trade.groupby('시군구')['평당거래금액(만원)'].mean().nlargest(5).index
target # 평균이 높은 5개의 지역 출력
target1 = df_trade[df_trade['시군구'].isin(target)]
target1 # 시군구 변수가 target에 속하는 관측치
target2 = target1[target1['거래유형'] == '중개거래']
target2 # 거래유형이 중개거래인 관측치만인것을 선택
df_sub = df_trade[(df_trade['시군구'].isin(target)) & (df_trade['거래유형'] == '중개거래')]
df_sub # 모두 만족하는 관측치
3번은 그렇게 어렵지 않았고, 차례대로 문제대로 풀어주었어요! (파이썬이니까 사람말이랑 비슷해서 편ㅡㅡ안..)
4번이 정말.. 오래 걸렸는데 그룹으로 다시 지정해 주고, 컬럼도 재정의해주고, 문제대로 해결해 보았답니다..
df_qu = df_sub.groupby('단지명').agg({
'거래금액(만원)':['count','mean', 'max'], '전용면적(㎡)':'min'}).reset_index()
df_qu.columns = ["단지명", "거래건수", "평당평균거래금액(만원)", "최대거래금액(만원)", "최소전용면적(㎡)"]
df_sorted = df_qu.sort_values(by=['거래건수', '평당평균거래금액(만원)'], ascending=[False, False])
df_result = df_sorted.head(15)
df_result
df_result.to_csv("agg_result.csv", index=False, encoding="CP949")
마지막으로 저장해서 끝~!
python과 데이터 분석의 기초를 담당해 주신 교수님과는
오늘을 마지막으로 인사하게 되었습니다...
파이썬이 실행되는 원리부터 함수 하나하나 궁금했던 저에게는
정말 감사한 교수님입니다.
교수님 덕분에 파이썬에 대한 기초 지식을
탄탄히 잘 배워갑니다!
정말 감사합니다!
'ABC 부트캠프' 카테고리의 다른 글
[12일차] ABC 부트캠프 ESG데이! (3) | 2024.07.21 |
---|---|
[11일차] ABC 부트캠프 데이터 수집을 위한 크롤링 (0) | 2024.07.21 |
[9일차] ABC 부트캠프 데이터 처리 심화_반응형 그래프 (0) | 2024.07.16 |
[8일차] ABC 부트캠프 데이터 집계와 시각화(히스토그램) (2) | 2024.07.15 |
[7일차] ABC 부트캠프 pandas_데이터 전처리 (0) | 2024.07.14 |