데이터프레임 한개를 두개로 나눠서 분석한뒤 다시 하나로 합쳐서.pkl로 저장하려 한다.
# 데이터프레임에서 중복행을 제거하기 : df.drop_duplicates()
vars = ['단지코드', '총세대수', '지역', '준공연도', '건물형태', '난방방식', '승강기설치여부', '실차량수']
data01 = data0[vars].copy()
data01 = data01.drop_duplicates()
data01.head()
vars2 = ['단지코드', '전용면적별세대수','전용면적', '공급면적(공용)','임대보증금','임대료']
data02 = data0[vars2].copy()
data02.head()
vars와 vars2로 나누고 data01과 data02로 저장한다.
temp = data02.loc[: , ['단지코드','전용면적','전용면적별세대수']]
print(temp['전용면적'].min(), temp['전용면적'].max())
sns.histplot(x = temp['전용면적'], bins = 12)
plt.show()
temp['전용면적_cut'] = pd.cut(temp['전용면적'], bins = [10,30,40,50,60,70, 80, 200]
, labels = ['전용면적_10_30','전용면적_30_40','전용면적_40_50','전용면적_50_60','전용면적_60_70','전용면적_70_80', '전용면적_80_200'])
temp.head()
그리고 전용면적을 한번 확인한뒤 의미있는 단위로 나눈다.
temp.groupby(['단지코드', '전용면적_cut'], as_index = False)['전용면적별세대수'].sum()
단지코드, 전용면적_cut으로 묶어서 sum()으로 전용면적별 세대수를 구한다.
이렇게하면
이런식으로 나오는데, 여기서 피벗함수를 사용하면
temp3 = temp2.pivot(index='단지코드', columns='전용면적_cut', values='전용면적별세대수')
temp3.reset_index(inplace = True)
temp3.head()
이렇게 옆으로 펴저서 보기쉽다.
import joblib
joblib.dump(base_data, path + 'base_data.pkl')
최종파일은 joblib 라이브러리로 .pkl로 저장할수있고
base_data.to_csv('base_data.csv', index=False)
csv로 저장할수있다.
참고로 gpt는 pkl은 읽지못한다.. csv나 엑셀은 읽을수 잇다
이렇게 전처리한 데이터로 분석을 한다
데이터분석은
단변량 분석
이변량 분석
- 숫자형 변수들간의 상관관계 분석
- 수치형 -> 실차량수
- 범주형 -> 실차량수
순서로 했는데
상관계수와 pvalue 값 분석부터 ... 상관계수는 0.3 정도인데 pvalue값은 엄청나게 낮은 값 인 경우가 많아서
하나씩 다시 분석해보면 예상했던 가설이 들어맞지 않는 부분도 많았고, 과연 선형관계인것이 중요한 것인가...
라는 의문도.. 드는 미니프로젝트였다......
그동안 잘 정리된 자료들로 공부하다가 조금만 덜 정리된 자료들로 해보니 앞이 깜깜해졌다
....
의외였던점은 총 면적과 전용면적 크기는 상관계수가 -였다... 그럼.. 뭘로 주차면수를 계산해야하나요?
....
복습 리뷰에 결과물을 쓰려고 했는데 하소연으로 끝난 복습...