Python을 사용한 데이터 분석 및 시각화 소개

데이터 분석 및 시각화는 데이터 분석, 빅 데이터 및 데이터 과학 등과 같은 컴퓨터 과학 분야에서 중요한 역할을 합니다. 원시 데이터 입력을 분석하고 패턴, 상관 관계 및 추세를 이해하여 출력을 생성해야 합니다.

이 문서는 독자가 다양한 기본 시각적 형식으로 데이터를 표현하는 다양한 방법과 그로부터 이해해야 할 사항을 배우는 데 도움이 됩니다.

데이터 분석에 사용되는 일반적인 도구는 다음과 같습니다.
  • R 프로그래밍
  • Python 프로그래밍
  • SAS
  • 마이크로소프트 엑셀

  • 이 기사는 고급 언어인 Python을 사용하여 설명하고 다음과 같은 시각화를 위한 많은 라이브러리를 제공합니다.
  • 매트플롯립
  • 팬더 시각화

  • 시본

  • 이러한 라이브러리는 Excel과 같은 파일 형식에서 데이터를 가져오고 Random Raw 데이터를 그래프, 파이 차트, 산점도 등으로 변환하는 데 사용할 수 있습니다.

    파이썬에서 중요한 라이브러리 추가하기




    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    


    데이터세트 가져오기



    이 기사에서 사용된 데이터 세트는 2008년 경합주 미국 선거입니다.

    데이터 세트 파일은 https://www.kaggle.com/aman1py/swing-states에서 가져왔습니다.

    Note: Make sure the CSV file(Excel) is locally downloaded in the system.
    The following code is mentioned in the downloadable code block and as well as executed using Jupyter Notebook.
    The screenshot of the output is also attached for your understanding.


    pandaread_csv 방법을 사용하여 Python에서 데이터를 가져올 수 있습니다.

    Data의 처음 5개 열은 head() 메서드로 나타낼 수 있습니다.

    연습하고 구현하려면 다음 데이터 세트를 메모장에 복사하고 2008_Election.csv로 저장해야 합니다.

    state,county,total_votes,dem_votes,rep_votes,dem_share
    PA,Erie County,127691,75775,50351,60.08
    PA,Bradford County,25787,10306,15057,40.64
    PA,Tioga County,17984,6390,11326,36.07
    PA,McKean County,15947,6465,9224,41.21
    PA,Potter County,7507,2300,5109,31.04
    PA,Wayne County,22835,9892,12702,43.78
    PA,Susquehanna County,19286,8381,10633,44.08
    PA,Warren County,18517,8537,9685,46.85
    OH,Ashtabula County,44874,25027,18949,56.94
    OH,Lake County  121335,60155,59142,50.46
    PA,Crawford County,38134,16780,20750,44.71
    OH,Lucas County 219830,142852,73706,65.99
    OH,Fulton County,21973,9900,11689,45.88
    OH,Geauga County,51102,21250,29096,42.23
    OH,Williams County,18397,8174,9880,45.26
    PA,Wyoming County,13138,5985,6983,46.15
    PA,Lackawanna County,107876,67520,39488,63.1
    PA,Elk County,14271,7290,6676,52.2
    PA,Forest County,2444,1038,1366,43.18
    PA,Venango County,23307,9238,13718,40.24
    OH,Erie County,41229,23148,17432,57.01
    OH,Wood County,65022,34285,29648,53.61
    PA,Cameron County,2245,879,1323,39.92
    PA,Pike County,24284,11493,12518,47.87
    


    코드 가져오기

    import pandas as pd
    df=pd.read_csv('2008_Election.csv')
    df.head()
    




    평균, 표준편차, 최대값, 최소값에 대한 설명을 표시하려면 describe() 방법으로 수행할 수 있습니다.

    히스토그램 플로팅



    히스토그램은 일변량 분석이며 관계를 이해하기 위해 데이터를 나타내는 데 사용할 수 있습니다.

    히스토그램은 matplotlib를 사용하여 나타낼 수 있습니다plt.hist().

    히스토그램의 라벨링:
  • plt.xlabel() - x축용
  • plt.ylabel() - Y축의 경우.

  • Note: Always label your graph
    Import matplotlib.pyplot library for the code to execute.


    import matplotlib.pyplot as plt
    h=plt.hist(df['dem_share'])
    _=plt.xlabel('percentage of vote for Obama')
    _=plt.ylabel('number of counties')
    plt.show()
    


    Seaborn 스타일링 설정



    Seaborn은 Matplot 라이브러리의 스타일링 패키지입니다. 이 스타일링은 매력적이고 유익한 통계 그래픽을 그리기 위한 높은 수준의 인터페이스를 가지고 있기 때문에 많은 전문가들이 선호합니다.

    import seaborn as sns
    sns.set()
    h=plt.hist(df['dem_share'])
    _=plt.xlabel('percentage of vote for Obama')
    _=plt.ylabel('number of countries')
    plt.show()
    




    플로팅 박스 플롯



    박스 플롯은 중간 데이터 포인트가 있는 위치를 나타내는 데이터의 중앙값을 보여줍니다. 상위 및 하위 사분위수는 각각 75 및 25 백분위수를 나타냅니다.

    상자 그림은 sns.boxplot()로 표시됩니다.

    import matplotlib as plt
    import seaborn as sns 
    _=sns.boxplot (x='east_west',y='dem_share',data = df_all_states)
    _=plt.xlabel('region')
    _=plt.ylabel('percentage of votes for Obama')
    plt.show()
    




    꿀벌 떼 플롯 생성



    꿀벌 떼 플롯은 일반적으로 상대적으로 작은 데이터에 사용됩니다. 이것의 주요 용도는 유사한 기능을 가진 데이터를 그룹화하는 것입니다.

    Bee Swarm 플롯은 sns.swarmplot로 표시됩니다.

    _=sns.swarmplot(x='state',y='dem_share',data=df)
    _=plt.xlabel('state')
    _=plt.ylabel('percentage of vote for Obama')
    plt.show()
    




    ECDF 만들기



    ECDF는 경험적 누적 분포 함수(ECDF)를 나타냅니다.

    ECDF는 사용자가 특정 기능을 최저에서 최고로 플로팅할 수 있는 추정기 도구이며 히스토그램의 대안으로 간주됩니다.

    ECDF는 plt.plot()를 사용하여 생성됩니다.

    import numpy as np
    x=np.sort(df['dem_share']) #sorts data
    y=np.arange(1, len(x)+1)/len(x) #arranges data
    _=plt.plot(x,y,marker='.', linestyle='none')
    _=plt.xlabel('percentage of vote for Obama')
    _=plt.ylabel('ECDF')
    plt.margins(0.02) #Keeps data off plot edges
    plt.show()
    




    결론



    따라서 데이터 분석 및 시각화를 사용하여 난수와 데이터를 변환하여 다음과 같은 사실을 이해했습니다.
  • 미국 동부는 미국 서부
  • 에 비해 오바마에 더 많이 투표했습니다.
  • 50%에 가까운 카운티의 75%에서 오바마에게 투표했습니다.
  • 20% 카운티에서 36% 이하만이 오바마에게 투표했습니다

  • 이러한 사실은 CSV 데이터셋을 보는 것만으로는 직접적으로 이해할 수 없으며 몇 줄의 코드만으로 데이터를 잘 이해할 수 있으며 히스토그램, ECDF 등과 같은 시각적 증거로 다른 사람에게 설명할 수 있습니다.

    좋은 웹페이지 즐겨찾기