본문 바로가기

Pandas/실전

판다스 - 뉴욕 Airbnb 데이터 : room_type별 분석

반응형

https://steadiness-193.tistory.com/202

 

판다스 - 뉴욕 Airbnb 데이터 : 전처리, 정규표현식으로 필터링

데이터 출처 https://www.kaggle.com/dgomonov/new-york-city-airbnb-open-data 데이터 불러오기 airbnb 데이터를 df 변수에 담았다. 데이터 살펴보기 컬럼은 총 16개로 다양하며 행은 총 48,895개로 나타난다...

steadiness-193.tistory.com

 

위 포스팅에서 전처리 완료된 analysis_df를 이용한다.

 

 

 

 

 

데이터 불러오기

 

 

 

 

 

room_type의 고유값

 

 

총 3가지 타입이 있으며

 

room_type별로 어떤 값을 보고자 하면 groupby를 이용해야 한다.

 

 

 

 

 

[목표 : 각 그룹별로 price가 가장 높은 그룹의 투숙객 이름, 호스트 id, 가격 출력]

 

방법1. get_group

 

 

room_type의  Entire home/apt 을 묶은 그룹을 entire 변수로 가져왔고

 

price 컬럼을 기준으로 내림차순 한 다음 원하는 컬럼들만 뽑아냈다.

 

최고 가격이 $10,000이며 중복되기도 했다.

 

 

따라서 컬럼의 max값과 같은 것을 걸러내는 조건을 만들어서 진행하면 된다.

 

 

 

단, 이렇게 get_group을 하는 것은 반복적이므로

 

한번에 함수를 정의해서 그룹별로 적용해보자

 

 

 

 

 

 

2. lambda

 

 

get_group에서 진행한 방법을 그냥 lambda로 한번에 함수로 만든 것이다.

 

private room도 최고가격은 $10,000이며 중복된 값은 없어보인다.

 

Share room은 다른 그룹에 비해 굉장히 저렴한 $1,800이며 이또한 중복 값은 없어보인다.

 

 

 

 

 

 

 

 

 

[목표2 : room_type별 가격의 히스토그램 그리기]

 

 

 

room_type별로 가격이 어떻게 차이나는지 보려면 하나의 틀에 3개의 그래프를 동시에 그려야 한다.

 

 

https://steadiness-193.tistory.com/166

 

Matplotlib - 하나의 axe 객체에 여러 개 그래프 그리기

[1개의 컬럼 이용] (예시 : 히스토그램) 1. add_subplot add_subplot을 이용해 ax 틀을 생성한다. 이제 ax에 바로 그래프 종류를 기입해서 그려내면 된다. ax.hist 박스로 체크한 부분에 보이듯이 plt.xlabel을..

steadiness-193.tistory.com

그리는 방법은 위 포스팅 참조

 

 

 

 

 

우선 세개의 그룹을 get_group으로 나눠주고

 

 

 

 

그냥 그리게 되면

 

 

 

 

이상하게 나온다.

 

그 이유를 describe에서 찾아보자

 

 

 

각 그룹별 price 필드의 기술통계를 보니

 

3사분위 값과 최댓값의 차이가 엄청나게 크다.

 

우선 0부터 500까지만 빈도를 줘서 다시 히스토그램을 그려보자

 

 

 

 

 

확실히 room_type별로 가격의 분포가 다르게 나타나고 있다.

 

Shared_room은 $130 위로는 잘 보이지 않는다.

 

 

반응형