-
[상권 정보 분석] 기술 통계 분석데이터 분석 2021. 9. 14. 16:39
Describe로 요약하기
데이터의 갯수, 평균, 표준편차, 최솟값, 1사분위수(25%), 2사분위수(50%), 3사분위수(75%), 최댓값 등을 포함한다.
# describe 로 기술통계값을 확인. # 25%: 1사분위수, 50%: 2사분위수, 75%: 3사분위수 df.describe()
데이터프레임은 2차 형태이므로, 리스트 형식으로 넣어준다.
# 위도, 경도 데이터만 가져온다. df[['위도', '경도']].describe()
단변량 수치형 변수 시각화
# 위도의 distplot # 현재 데이터셋이 서울, 부산 지역이므로 두 개의 정규분포로 나온다. # 막대를 촘촘히 그리고 싶으로면 bins 값을 크게 잡는다. sns.displot(df["위도"])
# 위도의 평균, 중앙값을 표현. # Seaborn은 matplotlib으로 만들어져서 matplotlib의 기능을 모두 가져다 쓸 수 있다. plt.axvline(df["위도"].mean(), linestyle=":", color="r") plt.axvline(df["위도"].median(), linestyle="--") sns.distplot(df["위도"])
상관 계수
- 두 변수 간의 관련성을 구하기 위해 보편적으로 사용.
- https://ko.wikipedia.org/wiki/%EC%83%81%EA%B4%80_%EB%B6%84%EC%84%9D
- r 값은 X 와 Y 가 완전히 동일하면 +1, 전혀 다르면 0, 반대방향으로 완전히 동일 하면 –1
# 각 변의 상관계수 corr = df.corr() corr
# 상관계수 시각화 plt.figure(figsize=(12, 7)) mask = np.triu(np.ones_like(corr, dtype=np.bool)) sns.heatmap(corr, annot=True, cmap="Blues", mask=mask)
이변량 수치형 변수 표현
# scatterplot으로 경도와 위도 표현 (시간 줄이기 위해 1000개의 샘플만 추출) sns.scatterplot(data=df.sample(1000), x="경도", y="위도")
sns.lmplot(data=df.sample(1000), x="경도", y="위도", hue="시도명", col="시도명")
object 타입의 데이터 요약
df.describe(include="object")
# unique 값의 갯수를 셀 수 있다. df["상권업종대분류명"].nunique()
범주형 변수의 빈도 구하기
# value_counts는 series에서만 사용 가능. df["상권업종대분류명"].value_counts()
인덱싱과 필터 활용하기
# "상권업종대분류명"가 음식인 데이터를 df_food에 넣기. # 서브셋을 새로운 변수에 저장할 경우, copy() 사용 권장 (original data에 반영되는 경우를 막기 위해) df_food = df[df["상권업종대분류명"] == "음식"].copy() df_food.head()
# 두 가지 조건을 요구 할 때 괄호를 쓴다. df[(df["시군구명"] == "강남구") & (df["상권업종대분류명"] == "음식")]
구별 음식점 업종 비교
# 시군구명, 상권업종중분류명으로 그룹화 해서 상점 개수 구하기. food_gu = df_seoul_food.groupby(["시군구명", "상권업종중분류명"])["상호명"].count() food_gu.head()
food_gu.unstack().iloc[:5, :5]
# food_gu 데이터 시각화 # 인덱스 내용을 컬럼으로 설정하기 위해 unstack plt.figure(figsize=(15, 7)) food_gu.unstack().loc["강남구"].plot.bar()
plt.figure(figsize=(15, 5)) sns.barplot(data=food, x="상권업종중분류명", y="상호수")
sns.catplot(data=food, x="시군구명", y="상호수", kind="bar", col="상권업종중분류명", col_wrap=4)
GitHub - DAWUNHAN/DataAnalysisInPython
Contribute to DAWUNHAN/DataAnalysisInPython development by creating an account on GitHub.
github.com
'데이터 분석' 카테고리의 다른 글
[프랜차이즈 분석] 배스킨라빈스와 던킨 위치 분석 (0) 2021.09.18 [상권 정보 분석] Folium으로 지도 시각화하기 (0) 2021.09.15 [상권 정보 분석] 전처리 과정 (0) 2021.09.13 [데이터 시각화] 히트맵 및 swarmplot (0) 2021.09.12 [데이터전처리] 컬럼이 다른 데이터셋 병합하기 (0) 2021.09.12