Python을 사용한 데이터 분석

이번 포스팅에서는 Python으로 데이터를 분석하는 방법에 대해 알아보겠습니다. NumPy를 사용한 수치 데이터 분석, Pandas를 사용한 테이블 형식 데이터, 데이터 시각화 Matplotlib, 탐색적 데이터 분석 등 모든 종류의 데이터 분석에 대해 논의합니다.

Python을 사용한 데이터 분석

데이터 분석 미래 예측과 정보에 기반한 데이터 기반 결정을 내리기 위해 데이터를 수집, 변환 및 구성하는 기술입니다. 또한 비즈니스 문제에 대한 가능한 솔루션을 찾는 데도 도움이 됩니다. 데이터 분석에는 6단계가 있습니다. 그들은:

  • 데이터 요구사항을 묻거나 지정하세요.
  • 데이터 준비 또는 수집
  • 청소 및 가공
  • 분석하다
  • 공유하다
  • 행동 또는 보고

Python을 사용한 데이터 분석



메모: 이러한 단계에 대해 자세히 알아보려면 다음을 참조하세요. 넘파이 Python의 배열 처리 패키지이며 이러한 배열 작업을 위한 고성능 다차원 배열 객체와 도구를 제공합니다. Python을 사용한 과학 컴퓨팅을 위한 기본 패키지입니다.

NumPy의 배열

NumPy 배열 양의 정수 튜플로 인덱싱된 동일한 유형의 요소(보통 숫자)의 테이블입니다. Numpy에서는 배열의 차원 수를 배열의 순위라고 합니다. 각 차원에 따라 배열의 크기를 제공하는 정수 튜플을 배열의 모양이라고 합니다.

NumPy 배열 만들기

NumPy 배열은 다양한 순위를 사용하여 다양한 방법으로 생성할 수 있습니다. 목록, 튜플 등과 같은 다양한 데이터 유형을 사용하여 생성할 수도 있습니다. 결과 배열의 유형은 시퀀스의 요소 유형에서 추론됩니다. NumPy는 초기 자리 표시자 콘텐츠로 배열을 생성하는 여러 기능을 제공합니다. 이는 비용이 많이 드는 작업인 어레이 확장의 필요성을 최소화합니다.

다음을 사용하여 배열 만들기 numpy.empty(shape, dtype=float, order='C')

파이썬3
import numpy as np b = np.empty(2, dtype = int) print('Matrix b : 
', b) a = np.empty([2, 2], dtype = int) print('
Matrix a : 
', a) c = np.empty([3, 3]) print('
Matrix c : 
', c) 

산출:

팬더를 사용하여 빈 매트릭스

팬더를 사용하여 빈 매트릭스

다음을 사용하여 배열 만들기 numpy.zeros(shape, dtype = None, order = 'C')

파이썬3
import numpy as np b = np.zeros(2, dtype = int) print('Matrix b : 
', b) a = np.zeros([2, 2], dtype = int) print('
Matrix a : 
', a) c = np.zeros([3, 3]) print('
Matrix c : 
', c) 

산출:

Matrix b :   [0 0]  Matrix a :   [[0 0]  [0 0]]  Matrix c :   [[0. 0. 0.]  [0. 0. 0.]  [0. 0. 0.]] 

Numpy 배열에 대한 작업

산술 연산

  • 덧셈:
파이썬3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing addition using arithmetic operator add_ans = a+b print(add_ans) # Performing addition using numpy function add_ans = np.add(a, b) print(add_ans) # The same functions and operations can be used for # multiple matrices c = np.array([1, 2, 3, 4]) add_ans = a+b+c print(add_ans) add_ans = np.add(a, b, c) print(add_ans) 

산출:

[ 7 77 23 130] [ 7 77 23 130] [ 8 79 26 134] [ 7 77 23 130] 
  • 빼기:
파이썬3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing subtraction using arithmetic operator sub_ans = a-b print(sub_ans) # Performing subtraction using numpy function sub_ans = np.subtract(a, b) print(sub_ans) 

산출:

[ 3 67 3 70] [ 3 67 3 70] 
  • 곱셈:
파이썬3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing multiplication using arithmetic # operator mul_ans = a*b print(mul_ans) # Performing multiplication using numpy function mul_ans = np.multiply(a, b) print(mul_ans) 

산출:

[ 10 360 130 3000] [ 10 360 130 3000] 
  • 분할:
파이썬3
import numpy as np # Defining both the matrices a = np.array([5, 72, 13, 100]) b = np.array([2, 5, 10, 30]) # Performing division using arithmetic operators div_ans = a/b print(div_ans) # Performing division using numpy functions div_ans = np.divide(a, b) print(div_ans) 

산출:

[ 2.5 14.4 1.3 3.33333333] [ 2.5 14.4 1.3 3.33333333] 

자세한 내용은 당사를 참조하세요. NumPy – 산술 연산 튜토리얼

NumPy 배열 인덱싱

인덱싱 NumPy에서는 배열을 인덱스로 사용하여 수행할 수 있습니다. 슬라이스의 경우 배열의 뷰 또는 얕은 복사본이 반환되지만 인덱스 배열의 경우 원본 배열의 복사본이 반환됩니다. Numpy 배열은 튜플을 제외한 다른 배열이나 다른 시퀀스로 인덱싱될 수 있습니다. 마지막 요소는 -1초, 마지막에는 -2 등으로 인덱싱됩니다.

Python NumPy 배열 인덱싱

파이썬3
# Python program to demonstrate # the use of index arrays. import numpy as np # Create a sequence of integers from # 10 to 1 with a step of -2 a = np.arange(10, 1, -2) print('
 A sequential array with a negative step: 
',a) # Indexes are specified inside the np.array method. newarr = a[np.array([3, 1, 2 ])] print('
 Elements at these indices are:
',newarr) 

산출:

A sequential array with a negative step:   [10 8 6 4 2]   Elements at these indices are:  [4 8 6] 

NumPy 배열 슬라이싱

x가 배열이고 obj가 인덱스인 x[obj] 구문을 고려해 보세요. 슬라이스 객체는 다음의 경우 인덱스입니다. 기본 슬라이싱 . 기본 슬라이싱은 obj가 다음과 같을 때 발생합니다.

  • start: stop: step 형식의 슬라이스 객체
  • 정수
  • 또는 슬라이스 객체와 정수의 튜플

기본 슬라이싱으로 생성된 모든 배열은 항상 원래 배열의 뷰입니다.

파이썬3
# Python program for basic slicing. import numpy as np # Arrange elements from 0 to 19 a = np.arange(20) print('
 Array is:
 ',a) # a[start:stop:step] print('
 a[-8:17:1] = ',a[-8:17:1]) # The : operator means all elements till the end. print('
 a[10:] = ',a[10:]) 

산출:

Array is: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]  a[-8:17:1] = [12 13 14 15 16]  a[10:] = [10 11 12 13 14 15 16 17 18 19] 

줄임표는 기본 슬라이싱과 함께 사용할 수도 있습니다. 줄임표(…)는 배열의 크기와 동일한 길이의 선택 튜플을 만드는 데 필요한 : 객체의 수입니다.

파이썬3
# Python program for indexing using basic slicing with ellipsis import numpy as np # A 3 dimensional array. b = np.array([[[1, 2, 3],[4, 5, 6]], [[7, 8, 9],[10, 11, 12]]]) print(b[...,1]) #Equivalent to b[: ,: ,1 ] 

산출:

[[ 2 5]  [ 8 11]] 

NumPy 배열 브로드캐스팅

용어 방송 특정 제약 조건으로 이어지는 산술 연산 중에 numpy가 서로 다른 차원의 배열을 처리하는 방법을 말하며, 더 작은 배열이 더 큰 배열에 브로드캐스트되어 호환 가능한 모양을 갖게 됩니다.

대규모 데이터 세트가 있고 각 데이터가 매개변수 목록이라고 가정해 보겠습니다. Numpy에는 2차원 배열이 있습니다. 여기서 각 행은 데이터이고 행 수는 데이터 세트의 크기입니다. 이러한 모든 데이터에 일종의 스케일링을 적용하고 모든 매개변수가 자체 스케일링 인수를 갖거나 모든 매개변수에 일부 인수를 곱한다고 가정해 보겠습니다.

명확한 이해를 돕기 위해 다량 영양소 분석을 사용하여 식품의 칼로리를 계산해 보겠습니다. 대략적으로 말하면, 음식의 칼로리 부분은 지방(그램당 9칼로리), 단백질(4 CPG), 탄수화물(4 CPG)로 구성됩니다. 따라서 일부 음식(데이터)을 나열하고 각 음식에 대해 다량 영양소 분석(매개변수)을 나열하면 각 영양소에 칼로리 값을 곱하여(스케일링 적용) 모든 식품 항목의 칼로리 분석을 계산할 수 있습니다.

NumPy 배열 브로드캐스팅

이 변환을 통해 이제 모든 종류의 유용한 정보를 계산할 수 있습니다. 예를 들어, 일부 음식에 존재하는 총 칼로리 수는 얼마이며, 저녁 식사를 분석하면 단백질에서 얼마나 많은 칼로리를 얻었는지 알 수 있습니다.

Numpy를 사용하여 이 계산을 생성하는 순진한 방법을 살펴보겠습니다.

파이썬3
import numpy as np macros = np.array([ [0.8, 2.9, 3.9], [52.4, 23.6, 36.5], [55.2, 31.7, 23.9], [14.4, 11, 4.9] ]) # Create a new array filled with zeros, # of the same shape as macros. result = np.zeros_like(macros) cal_per_macro = np.array([3, 3, 8]) # Now multiply each row of macros by # cal_per_macro. In Numpy, `*` is # element-wise multiplication between two arrays. for i in range(macros.shape[0]): result[i, :] = macros[i, :] * cal_per_macro result 

산출:

array([[ 2.4, 8.7, 31.2],  [157.2, 70.8, 292. ],  [165.6, 95.1, 191.2],  [ 43.2, 33. , 39.2]]) 

방송 규칙: 두 배열을 함께 브로드캐스트하는 경우 다음 규칙을 따릅니다.

  • 배열의 순위가 동일하지 않으면 두 모양의 길이가 같아질 때까지 하위 순위 배열의 모양 앞에 1을 추가합니다.
  • 두 배열은 차원의 크기가 동일하거나 배열 중 하나가 해당 차원의 크기가 1인 경우 차원에서 호환됩니다.
  • 배열은 모든 차원과 호환되는 경우 함께 브로드캐스트될 수 있습니다.
  • 브로드캐스트 후 각 배열은 두 입력 배열의 요소별 최대 모양과 동일한 모양을 가진 것처럼 동작합니다.
  • 한 배열의 크기가 1이고 다른 배열의 크기가 1보다 큰 모든 차원에서 첫 번째 배열은 해당 차원을 따라 복사된 것처럼 동작합니다.
파이썬3
import numpy as np v = np.array([12, 24, 36]) w = np.array([45, 55]) # To compute an outer product we first # reshape v to a column vector of shape 3x1 # then broadcast it against w to yield an output # of shape 3x2 which is the outer product of v and w print(np.reshape(v, (3, 1)) * w) X = np.array([[12, 22, 33], [45, 55, 66]]) # x has shape 2x3 and v has shape (3, ) # so they broadcast to 2x3, print(X + v) # Add a vector to each column of a matrix X has # shape 2x3 and w has shape (2, ) If we transpose X # then it has shape 3x2 and can be broadcast against w # to yield a result of shape 3x2. # Transposing this yields the final result # of shape 2x3 which is the matrix. print((X.T + w).T) # Another solution is to reshape w to be a column # vector of shape 2X1 we can then broadcast it # directly against X to produce the same output. print(X + np.reshape(w, (2, 1))) # Multiply a matrix by a constant, X has shape 2x3. # Numpy treats scalars as arrays of shape(); # these can be broadcast together to shape 2x3. print(X * 2) 

산출:

[[ 540 660]  [1080 1320]  [1620 1980]] [[ 24 46 69]  [ 57 79 102]] [[ 57 67 78]  [100 110 121]] [[ 57 67 78]  [100 110 121]] [[ 24 44 66]  [ 90 110 132]] 

메모: 자세한 내용은 당사를 참조하세요. Python NumPy 튜토리얼 .

Pandas를 사용한 데이터 분석

Python Pandas는 관계형 또는 레이블이 지정된 데이터에 사용되며 이러한 데이터 및 시계열을 조작하기 위한 다양한 데이터 구조를 제공합니다. 이 라이브러리는 NumPy 라이브러리 위에 구축되었습니다. 이 모듈은 일반적으로 다음과 같이 가져옵니다.

import pandas as pd 

여기서 pd는 Pandas의 별칭으로 참조됩니다. 그러나 별칭을 사용하여 라이브러리를 가져올 필요는 없으며 메서드나 속성이 호출될 때마다 적은 양의 코드를 작성하는 데 도움이 됩니다. Pandas는 일반적으로 데이터 조작을 위해 두 가지 데이터 구조를 제공합니다.

  • 시리즈
  • 데이터프레임

시리즈:

팬더 시리즈 모든 유형(정수, 문자열, 부동소수점, 파이썬 객체 등)의 데이터를 보유할 수 있는 1차원 레이블 배열입니다. 축 레이블을 집합적으로 인덱스라고 합니다. Pandas Series는 Excel 시트의 열에 불과합니다. 라벨은 고유할 필요는 없지만 해시 가능한 유형이어야 합니다. 이 객체는 정수 및 레이블 기반 인덱싱을 모두 지원하며 인덱스와 관련된 작업을 수행하기 위한 다양한 메서드를 제공합니다.

팬더 시리즈

SQL, 데이터베이스, CSV 파일, Excel 파일 등과 같은 기존 스토리지 또는 목록, 사전 등과 같은 데이터 구조에서 데이터 세트를 로드하여 Series() 함수를 사용하여 생성할 수 있습니다.

Python Pandas 시리즈 만들기

파이썬3
import pandas as pd import numpy as np # Creating empty series ser = pd.Series() print(ser) # simple array data = np.array(['g', 'e', 'e', 'k', 's']) ser = pd.Series(data) print(ser) 

산출:

프나다스 시리즈

프나다스 시리즈

데이터프레임:

팬더 데이터프레임 레이블이 지정된 축(행 및 열)이 있는 2차원 크기 변경 가능하고 잠재적으로 이질적인 표 형식 데이터 구조입니다. 데이터 프레임은 2차원 데이터 구조입니다. 즉, 데이터가 행과 열의 표 형식으로 정렬됩니다. Pandas DataFrame은 데이터, 행, 열이라는 세 가지 주요 구성 요소로 구성됩니다.

팬더 데이터프레임

Dataframe() 메서드를 사용하여 생성할 수 있으며 시리즈와 마찬가지로 다양한 파일 형식과 데이터 구조를 사용할 수도 있습니다.

Python Pandas 데이터 프레임 생성

파이썬3
import pandas as pd # Calling DataFrame constructor df = pd.DataFrame() print(df) # list of strings lst = ['Geeks', 'For', 'Geeks', 'is', 'portal', 'for', 'Geeks'] # Calling DataFrame constructor on list df = pd.DataFrame(lst) df 

산출:

목록에서 데이터프레임 생성

Python 목록에서 데이터 프레임 만들기

CSV에서 데이터프레임 생성

우리는 할 수 있다 CSV에서 데이터 프레임 생성 파일을 사용하여 read_csv() 기능.

Python Pandas는 CSV를 읽습니다.

파이썬3
import pandas as pd # Reading the CSV file df = pd.read_csv('Iris.csv') # Printing top 5 rows df.head() 

산출:

데이터프레임의 선두

데이터프레임의 선두

DataFrame 필터링

팬더 데이터프레임.필터() 함수는 지정된 인덱스의 레이블에 따라 데이터 프레임의 행 또는 열을 부분 집합하는 데 사용됩니다. 이 루틴은 해당 내용에 따라 데이터프레임을 필터링하지 않습니다. 필터는 인덱스의 레이블에 적용됩니다.

Python Pandas 필터 데이터 프레임

파이썬3
import pandas as pd # Reading the CSV file df = pd.read_csv('Iris.csv') # applying filter function df.filter(['Species', 'SepalLengthCm', 'SepalLengthCm']).head() 

산출:

데이터 세트에 필터 적용

데이터 세트에 필터 적용

DataFrame 정렬

팬더에서 데이터 프레임을 정렬하려면 다음 함수를 사용하세요. sort_values() 사용. Pandas sort_values()는 데이터 프레임을 오름차순 또는 내림차순으로 정렬할 수 있습니다.

Python Pandas 오름차순으로 데이터 프레임 정렬

산출:

열 값을 기준으로 정렬된 데이터세트

열 값을 기준으로 정렬된 데이터세트

Pandas Group별

그룹바이 꽤 간단한 개념이다. 카테고리 그룹을 생성하고 카테고리에 기능을 적용할 수 있습니다. 실제 데이터 과학 프로젝트에서는 많은 양의 데이터를 처리하고 계속해서 시도하게 되므로 효율성을 위해 Groupby 개념을 사용합니다. Groupby는 주로 다음 단계 중 하나 이상을 포함하는 프로세스를 나타냅니다.

  • 파편: 데이터세트에 몇 가지 조건을 적용하여 데이터를 그룹으로 나누는 과정입니다.
  • 지원: 각 그룹에 독립적으로 기능을 적용하는 과정입니다.
  • 결합: 서로 다른 데이터셋을 그룹바이와 결과를 데이터 구조로 적용한 후 결합하는 과정입니다.

다음 이미지는 Groupby 개념과 관련된 프로세스를 이해하는 데 도움이 됩니다.

1. 팀 열의 고유 값을 그룹화합니다.

Pandas Group별 방법

2. 이제 각 그룹에 대한 버킷이 있습니다.

3. 다른 데이터를 버킷에 넣습니다.

Pandas Group별

4. 각 버킷의 가중치 열에 함수를 적용합니다.

각 열의 가중치 열에 함수 적용

Python Pandas 그룹별

파이썬3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'Name': ['Jai', 'Anuj', 'Jai', 'Princi', 'Gaurav', 'Anuj', 'Princi', 'Abhi'], 'Age': [27, 24, 22, 32, 33, 36, 27, 32], 'Address': ['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj', 'Jaunpur', 'Kanpur', 'Allahabad', 'Aligarh'], 'Qualification': ['Msc', 'MA', 'MCA', 'Phd', 'B.Tech', 'B.com', 'Msc', 'MA']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) print('Original Dataframe') display(df) # applying groupby() function to # group the data on Name value. gk = df.groupby('Name') # Let's print the first entries # in all the groups formed. print('After Creating Groups') gk.first() 

산출:

팬더 그룹바이

팬더 그루비

그룹에 기능 적용:

데이터를 그룹으로 분할한 후 다음과 같은 작업을 수행하기 위해 각 그룹에 함수를 적용합니다.

  • 집합: 각 그룹에 대한 요약 통계(또는 통계)를 계산하는 프로세스입니다. 예를 들어 컴퓨팅 그룹 합계 또는 평균
  • 변환: 이는 그룹별 계산을 수행하고 유사한 색인을 반환하는 프로세스입니다. 예를 들어, 각 그룹에서 파생된 값으로 그룹 내의 NA를 채웁니다.
  • 여과법: True 또는 False를 평가하는 그룹별 계산에 따라 일부 그룹을 삭제하는 프로세스입니다. 예를 들어 그룹 합계 또는 평균을 기준으로 데이터 필터링

팬더 집계

집합 각 그룹에 대한 요약 통계를 계산하는 프로세스입니다. 집계 함수는 각 그룹에 대해 단일 집계 값을 반환합니다. groupby 함수를 사용하여 데이터를 그룹으로 분할한 후 그룹화된 데이터에 대해 여러 가지 집계 작업을 수행할 수 있습니다.

Python Pandas 집계

파이썬3
# importing pandas module import pandas as pd # importing numpy as np import numpy as np # Define a dictionary containing employee data data1 = {'Name': ['Jai', 'Anuj', 'Jai', 'Princi', 'Gaurav', 'Anuj', 'Princi', 'Abhi'], 'Age': [27, 24, 22, 32, 33, 36, 27, 32], 'Address': ['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj', 'Jaunpur', 'Kanpur', 'Allahabad', 'Aligarh'], 'Qualification': ['Msc', 'MA', 'MCA', 'Phd', 'B.Tech', 'B.com', 'Msc', 'MA']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # performing aggregation using # aggregate method grp1 = df.groupby('Name') grp1.aggregate(np.sum) 

산출:

데이터세트에 합계 집계 함수 사용

데이터세트에 합계 집계 함수 사용

DataFrame 연결

데이터프레임을 연결하기 위해 우리는 다음을 사용합니다. 연결() 데이터프레임을 연결하는 데 도움이 되는 함수입니다. 이 함수는 Pandas 개체의 축과 함께 연결 작업을 수행하는 동시에 다른 축에 있는 인덱스(있는 경우)의 선택적 설정 논리(합집합 또는 교차점)를 수행하는 모든 무거운 작업을 수행합니다.

Python Pandas 데이터 프레임 연결

파이썬3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32],} # Define a dictionary containing employee data data2 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj'], 'Qualification':['Btech', 'B.A', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2) display(df, df1) # combining series and dataframe res = pd.concat([df, df1], axis=1) res 

산출:

DataFrame 병합

매우 큰 DataFrame을 결합해야 할 때 조인은 이러한 작업을 신속하게 수행하는 강력한 방법 역할을 합니다. 조인은 한 번에 두 개의 DataFrame(왼쪽 및 오른쪽 테이블로 표시)에서만 수행할 수 있습니다. 키는 두 DataFrame이 결합될 공통 열입니다. 의도하지 않은 행 값의 중복을 방지하려면 열 전체에서 고유한 값을 갖는 키를 사용하는 것이 좋습니다. Pandas는 단일 기능을 제공합니다. 병합() , DataFrame 객체 간의 모든 표준 데이터베이스 조인 작업의 진입점입니다.

데이터를 유지해야 하는 행에 따라 조인(내부, 왼쪽, 오른쪽 및 외부)을 처리하는 네 가지 기본 방법이 있습니다.

Daframe Python Pandas 병합

Python Pandas 병합 데이터 프레임

파이썬3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32],} # Define a dictionary containing employee data data2 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj'], 'Qualification':['Btech', 'B.A', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2) display(df, df1) # using .merge() function res = pd.merge(df, df1, on='key') res 

산출:

두 개의 데이터 세트 연결

두 개의 데이터 세트 연결

DataFrame 조인

데이터프레임에 참여하기 위해 우리는 다음을 사용합니다. .가입하다() 함수 이 함수는 잠재적으로 서로 다르게 인덱싱된 두 DataFrame의 열을 단일 결과 DataFrame으로 결합하는 데 사용됩니다.

Python Pandas는 데이터 프레임에 참여합니다.

파이썬3
# importing pandas module import pandas as pd # Define a dictionary containing employee data data1 = {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32]} # Define a dictionary containing employee data data2 = {'Address':['Allahabad', 'Kannuaj', 'Allahabad', 'Kannuaj'], 'Qualification':['MCA', 'Phd', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1,index=['K0', 'K1', 'K2', 'K3']) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2, index=['K0', 'K2', 'K3', 'K4']) display(df, df1) # joining dataframe res = df.join(df1) res 

산출:

두 개의 데이터 세트 결합

자세한 내용은 당사를 참조하세요. Pandas 병합, 결합 및 연결 지도 시간

Pandas에 대한 전체 가이드는 다음을 참조하세요. 팬더 튜토리얼 .

Matplotlib를 사용한 시각화

Matplotlib는 사용하기 쉽고 Python의 놀라운 시각화 라이브러리입니다. NumPy 배열을 기반으로 구축되었으며 더 넓은 SciPy 스택과 함께 작동하도록 설계되었으며 선, 막대, 분산형, 히스토그램 등과 같은 여러 플롯으로 구성됩니다.

파이플롯

파이플롯 MATLAB과 유사한 인터페이스를 제공하는 Matplotlib 모듈입니다. Pyplot은 그림과 상호 작용하는 기능, 즉 그림을 만들고, 레이블로 플롯을 장식하고, 그림에 플롯 영역을 만드는 기능을 제공합니다.

파이썬3
# Python program to show pyplot module import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) plt.axis([0, 6, 0, 20]) plt.show() 

산출:

막대 차트

막대 그래프 또는 막대 차트는 길이와 높이가 나타내는 값에 비례하는 직사각형 막대로 데이터 범주를 나타내는 그래프입니다. 막대 그래프는 가로 또는 세로로 표시할 수 있습니다. 막대 차트는 개별 범주 간의 비교를 설명합니다. bar() 메소드를 사용하여 생성할 수 있습니다.

Python Matplotlib 막대 차트

여기서는 iris 데이터세트만 사용하겠습니다.

파이썬3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') # This will plot a simple bar chart plt.bar(df['Species'], df['SepalLengthCm']) # Title to the plot plt.title('Iris Dataset') # Adding the legends plt.legend(['bar']) plt.show() 

산출:

matplotlib 라이브러리를 사용하는 막대 차트

matplotlib 라이브러리를 사용하는 막대 차트

히스토그램

히스토그램 기본적으로 일부 그룹의 형태로 데이터를 나타내는 데 사용됩니다. X축은 빈 범위를 나타내고 Y축은 빈도에 대한 정보를 제공하는 일종의 막대 그래프입니다. 히스토그램을 만들기 위한 첫 번째 단계는 범위의 저장소를 만든 다음 전체 값 범위를 일련의 간격으로 배포하고 각 간격에 속하는 값을 계산하는 것입니다. 빈은 변수의 연속적이고 겹치지 않는 간격으로 명확하게 식별됩니다. 그만큼 역사() 함수는 x의 히스토그램을 계산하고 생성하는 데 사용됩니다.

Python Matplotlib 히스토그램

파이썬3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.hist(df['SepalLengthCm']) # Title to the plot plt.title('Histogram') # Adding the legends plt.legend(['SepalLengthCm']) plt.show() 

산출:

matplotlib 라이브러리를 사용하는 Histplot

산포도

산점도는 변수 간의 관계를 관찰하는 데 사용되며 점을 사용하여 변수 간의 관계를 나타냅니다. 그만큼 흩어지게하다() matplotlib 라이브러리의 메서드는 산점도를 그리는 데 사용됩니다.

Python Matplotlib 산점도

파이썬3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.scatter(df['Species'], df['SepalLengthCm']) # Title to the plot plt.title('Scatter Plot') # Adding the legends plt.legend(['SepalLengthCm']) plt.show() 

산출:

matplotlib 라이브러리를 사용한 산점도

matplotlib 라이브러리를 사용한 산점도

상자 그림

상자 그림 ,상관관계는 상자수염도라고도 합니다. 데이터 분포를 측정할 때 매우 좋은 시각적 표현입니다. 중앙값, 이상값, 사분위수를 명확하게 표시합니다. 데이터 분포를 이해하는 것은 더 나은 모델 구축으로 이어지는 또 다른 중요한 요소입니다. 데이터에 이상치가 있는 경우 이를 식별하고 필요한 조치를 취하기 위해 상자 그림을 사용하는 것이 좋습니다. 상자 수염 차트는 데이터가 분산되는 방식을 보여줍니다. 차트에는 일반적으로 5가지 정보가 포함됩니다.

  • 최소값은 차트의 맨 왼쪽, 왼쪽 '수염' 끝에 표시됩니다.
  • 1분위수 Q1은 상자의 가장 왼쪽(왼쪽 수염)입니다.
  • 중앙값은 상자 중앙에 선으로 표시됩니다.
  • 3분위수, Q3, 상자 오른쪽 끝에 표시됨(오른쪽 수염)
  • 최대값은 상자의 맨 오른쪽에 있습니다.

상자 그림 표현

사분위간 범위

사분위간 범위

상자 그림 설명

상자 그림 설명

Python Matplotlib 상자 도표

파이썬3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.boxplot(df['SepalWidthCm']) # Title to the plot plt.title('Box Plot') # Adding the legends plt.legend(['SepalWidthCm']) plt.show() 

산출:

matplotlib 라이브러리를 사용한 상자 그림

matplotlib 라이브러리를 사용한 상자 그림

상관관계 히트맵

2D 히트맵은 현상의 크기를 색상 형태로 표현하는 데 도움이 되는 데이터 시각화 도구입니다. 상관관계 히트맵은 일반적으로 단색 척도의 데이터를 표현하기 위해 색상이 지정된 셀을 사용하여 두 개의 이산 차원 간의 2D 상관 행렬을 표시하는 히트맵입니다. 첫 번째 차원의 값은 테이블의 행으로 표시되고 두 번째 차원은 열로 표시됩니다. 셀의 색상은 치수 값과 일치하는 측정값 수에 비례합니다. 이를 통해 상관 관계 히트맵은 패턴을 쉽게 읽을 수 있게 만들고 동일한 데이터의 차이점과 변화를 강조하므로 데이터 분석에 이상적입니다. 일반 히트맵과 마찬가지로 상관관계 히트맵은 컬러바의 지원을 받아 데이터를 쉽게 읽고 이해할 수 있습니다.

메모: 여기의 데이터는 상관관계 히트맵을 생성하기 위해 corr() 메소드를 사용하여 전달되어야 합니다. 또한 corr() 자체는 상관관계 히트맵을 생성하는 동안 쓸모가 없는 열을 제거하고 사용할 수 있는 열을 선택합니다.

Python Matplotlib 상관관계 히트맵

파이썬3
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Iris.csv') plt.imshow(df.corr() , cmap = 'autumn' , interpolation = 'nearest' ) plt.title('Heat Map') plt.show() 

산출:

matplotlib 라이브러리를 사용한 히트맵

matplotlib 라이브러리를 사용한 히트맵

데이터 시각화에 대한 자세한 내용은 아래 튜토리얼을 참조하세요.

인기 기사

범주

재미있는 기사