import pandas as pd
import re, os
os.chdir(r'C:\Users\alstn\PycharmProjects\data-analysis-Pandas-Numpy\Pandas')
# pandas 로 csv 파일을 불러 올 때는 read.csv() 를 사용
df = pd.read_csv("apt.csv", encoding='cp949')   # 자동으로 데이터프레임으로 변환된다.
# 한글 인코딩 오류시 사용 - cp949

"""
부동산실거래가 다루기
"""

print("--------------------------ex1---------------------------------")
# 자료 수 
print(len(df))

print("---------------------------ex2-------------------------------")
# 자료 파악(많은 자료가 들어있을때 전체를 보는게 아니라 부분만 본다)
# 시작 5개
print(df.head())
# 끝 5개
print(df.tail())

print("----------------------------ex3------------------------------")
# 특정 컬럼(열)의 전체 자료 출력
print(df.지역)

print("-----------------------------ex4-----------------------------")
# 면적 130㎡이상, 가격이 1억5천만원 미만인 아파트 단지명 출력
print(df.아파트[(df.면적 > 130) & (df.가격 < 15000)])

print("------------------------------ex6--------------------------")
# 면적 130㎡이상이거나 가격이 1억5천만원 미만인 아파트 단지명 출력
print(df.아파트[(df.면적 > 130) | (df.가격 < 15000)])

print("------------------------------ex6----------------------------")
# 4억 원 이상의 가격으로 거래된 아파트(해당 데이터프레임의 첫컬럼부터 중에 아파트와 가격만 출력)
print(df.loc[:, ['아파트', '가격']][df.가격 > 40000])

print("-------------------------------ex7---------------------------")
# 단가 구하기(면적 대비 가격)
# 기존 데이터프레임에는 단가라는 컬럼이 없는데 새로 계산하여 추가함.
# df.가격 과 df['가격']이 거의 똑같은 의미를 가지지만 새로운 열을 생성할 때 df.가격과 같은 형태로 생성하면 오류발생.
# df['단가']라고 해야 새로운 열을 만들 수 있음
df['단가'] = df.가격/df.면적

# 가격 면적 단가 데이터프레임 저장순서상 위에서부터 10개 출력
print(df.loc[:10, ('가격', '면적', '단가')])

# 가격 면적 단가 데이터프레임 전체 출력
print(df.loc[:, ('가격', '면적', '단가')])

print("---------------------------------ex8-------------------------")
# 가격 오름차순으로 가격과 지역을 정렬해 출력
print(df.sort_values(by='가격').loc[:, ('가격', '지역')])

print("----------------------------------ex9------------------------")
# 25억 넘는 아파트만을 계약일 기준(자동 오름차순)으로 가격, 면적, 계약일 순으로 출력
print(df[df.가격 > 250000].sort_values(by='계약일').loc[:, ('가격', '면적', '계약일')])

print("-----------------------------------ex10-----------------------")
# 강릉 아파트만 출력
print(df[df.지역.str.find('강릉') > -1])

print("-------------------------------------ex11---------------------")
# 강릉 아파트만 출력하여 각 변수 평균 출력
dfF = df[df.지역.str.find('강릉') > -1]
print(dfF.mean())

