카테고리 없음

데이터분석- 피벗테이블활용과 .pkl로 저장하기

chacha001 2024. 10. 10. 00:48

 

데이터프레임 한개를 두개로 나눠서 분석한뒤 다시 하나로 합쳐서.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값은 엄청나게 낮은 값 인 경우가 많아서 

하나씩 다시 분석해보면 예상했던 가설이 들어맞지 않는 부분도 많았고, 과연 선형관계인것이 중요한 것인가...

라는 의문도.. 드는 미니프로젝트였다......

 

그동안 잘 정리된 자료들로 공부하다가 조금만 덜 정리된 자료들로 해보니 앞이 깜깜해졌다

....

의외였던점은 총 면적과 전용면적 크기는 상관계수가 -였다... 그럼.. 뭘로 주차면수를 계산해야하나요?

....

 

복습 리뷰에 결과물을 쓰려고 했는데 하소연으로 끝난 복습...