-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
차트까지는 제대로 나오는데 숫자는 서로 바껴서 나옵니다. 왜그런건가요?
20.06.11 07:28 작성 조회수 178
1
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
plt.rc("font",family="Malgun Gothic")
plt.rc('axes', unicode_minus=False)
from IPython.display import set_matplotlib_formats
set_matplotlib_formats("retina")
plt.title("한글폰트 설정")
plt.plot([-4, -6, 1, 2, 0, 3])
df = pd.read_csv("date/상가업소정보_201912_01.csv", sep='|')
df.head()
df.info()
columns = ['상호명', '상권업종대분류명', '상권업종중분류명', '상권업종소분류명',
'시도명', '시군구명', '행정동명', '법정동명', '도로명주소',
'경도', '위도']
print(df.shape)
df = df[columns].copy()
df.shape
df.info()
df_seoul = df[df["시도명"] == "서울특별시"].copy()
df_seoul.head()
df_seoul["시군구명"].unique()
df_seoul["시군구명"].nunique()
df_seoul.to_csv("seoul_open_store.csv", index=False)
pd.read_csv("seoul_open_store.csv").head()
df_seoul["상호명_소문자"] = df_seoul["상호명"].str.lower()
df_seoul.loc[df_seoul["상호명_소문자"].str.contains("케이에프씨|케이에프시|kfc"),
"상호명_소문자"].shape
df_seoul.loc[df_seoul["상호명_소문자"].str.contains("맥도날|McDonald"), "상호명_소문자"].shape
df_31 = df_seoul[df_seoul["상호명_소문자"].str.contains(
'케이에프씨|케이에프시|kfc|맥도날|McDonald')].copy()
df_31.shape
df_31.loc[df_31["상호명_소문자"].str.contains("케이에프씨|케이에프시|kfc"),
"브랜드명"] = "케이에프씨"
df_31[["상호명", "브랜드명"]].head()
df_31["브랜드명"] = df_31["브랜드명"].fillna("맥도날드")
df_31["브랜드명"]
df_31["상권업종소분류명"].value_counts()
df_31[df_31["상권업종소분류명"].isin(["인쇄종합", "한식/백반/한정식","학원-외국어/어학","라면김밥분식"])]
df_31=df_31[~df_31["상권업종소분류명"].isin(["인쇄종합", "한식/백반/한정식","학원-외국어/어학","라면김밥분식"])]
brand_count = df_31["브랜드명"].value_counts()
brand_count
df_31["브랜드명"].value_counts(normalize=True).plot.barh()
brand_count.index
g = sns.countplot(data=df_31, x="브랜드명")
g.text(x=1, y=brand_count[1], s=brand_count[1])
g.text(x=0, y=brand_count[0], s=brand_count[0])
전체코드는 위인데요. 차트까지는 제대로 나오는데 아래 숫자는 서로 바껴서 나옵니다. 왜그런건가요?
답변을 작성해보세요.
0
박조은
지식공유자2020.06.11
안녕하세요.
다른 예제로 실습을 진행해 보셨네요. 좋습니다.👍
마지막 두 줄의 코드를 질문주신게 맞나요? 차트와 brand_count.index 의 출력이 맞게 보입니다.
brand_count 를 출력해 보시면 맥도날드의 수가 더 많게 나올것이고 여기에서는 normalize=True로 비율을 출력하도록 했습니다.
맥도날드의 비율이 50%가 넘어 보입니다.
또, 순서가 바뀌어 나온다고 질문주신 내용을 생각해 보니 맥도날드가 위에 표시되는게 맞지 않냐는 질문 같습니다. 맞나요?
만약 맥도날드를 케이에프씨 위에 출력하고자 하면 value_counts 결과를 sort_values를 통해 ascending=True로 순차 정렬해서 작은 수 기준으로 정렬을 한다면 의도하신대로 그래프가 그려질거 같습니다.
답변 1