Pandas PlatoBlockchain 데이터 인텔리전스를 사용한 데이터 시각화. 수직 검색. 일체 포함.

Pandas를 사용한 데이터 시각화

Pandas는 지금까지 데이터 전처리 단계에서 우리를 도와왔습니다. 하지만 어떤 경우에는 히스토그램을 생성하는 동안 Pandas의 다른 모듈도 활용했습니다. plotting.

우리는 지금까지 의도적으로 피했습니다. 더 일찍 소개하면 답변보다 더 많은 질문이 제기될 것이기 때문입니다. 즉, 팬더 Matplotlib는 매우 흔한 유비쿼터스 듀오였으며 Pandas는 Matplotlib의 기능을 통합하기 시작했습니다. 그것 무겁게 Matplotlib를 사용하여 실제 플로팅을 수행하며 소스 코드에 래핑된 많은 Matplotlib 함수를 찾을 수 있습니다. 또는 다음과 같은 다른 백엔드를 사용하여 플로팅할 수 있습니다. 플롯나뭇잎.

그러나 Pandas는 또한 우리에게 다음과 같은 몇 가지 플롯을 소개합니다. 있지 않다. Matplotlib의 표준 플롯 유형의 일부(예: KDE, 앤드루스 곡선, 부트스트랩 플롯분산형 행렬.

XNUMXD덴탈의 plot() 팬더의 기능 DataFrame 다음에 의해 지정된 백엔드를 사용합니다. plotting.backend, 그리고 kind 인수 – 주어진 라이브러리를 사용하여 플롯을 생성합니다. 이들 중 많은 부분이 겹치기 때문에 다음과 같은 플롯 유형을 다루는 데는 의미가 없습니다. line, bar, histscatter. 지금까지 Matplotlib로 수행했던 것과 동일한 코드로 거의 동일한 플롯을 생성합니다.

간략하게만 살펴보겠습니다. plot() 지금까지 기본 메커니즘을 탐색했기 때문에 기능을 수행합니다. 대신, 우리가 알고 있는 몇 가지 플롯에 집중해 보겠습니다. 수 없습니다 이미 Matplotlib을 사용하면 쉽게 할 수 있습니다.

Pandas의 플로팅 및 시각화 기능은 Matplotlib에 비해 약하기 때문에 매우 짧은 장이 될 것입니다. 하지만 이들 중 일부를 알고 Matplotlib에서 플롯하는 기능을 아는 것은 여전히 ​​유용합니다. DataFrame직접.

XNUMXD덴탈의 데이터프레임.플롯() 함수

XNUMXD덴탈의 plot() 함수는 받아들인다 xy 기능 및 kind 논쟁. 또는 다음을 방지하려면 kind 인수, 당신은 또한 호출할 수 있습니다 DataFrame.plot.kind() 대신에 xy 기능을 제공합니다.

다음에 대해 허용되는 값은 kind 인수는 다음과 같습니다 line, bar, barh (가로 막대), hist, box, kde, density (동의어 kde), area, pie, scatterhexbin (히트맵과 유사)

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] df_eu.plot.bar(x = 'Year', y = 'Value')
df_eu.plot.line(x = 'Year', y = 'Value')
df_eu.plot.box(x='Value') plt.show()

제공하는 대신 Series Matplotlib에서와 같은 인스턴스 – 다음을 제공하는 것만으로도 충분합니다. 열 이름, 그리고 당신이 전화를 걸었으니까 plot() 기능 DataFrame 시각화하는 동안 Pandas는 이러한 문자열 값을 적절한 열 이름에 쉽게 매핑할 수 있습니다.

이러한 각 호출은 새로운 Figure 인스턴스를 생성하고 여기에 적절한 값을 표시합니다.

Pandas PlatoBlockchain 데이터 인텔리전스를 사용한 데이터 시각화. 수직 검색. 일체 포함.

동일한 축에 여러 축을 플롯하려면 Figure, 당신은 할 수 있습니다 Figure 그리고 하나 이상의 Axes 를 통해 plt.subplots() 그리고 적절한 할당 Axes ~로 ax 각각의 주장 plot.plot_type() 요구:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] fig, ax = plt.subplots(3, 1) df_eu.plot.box(x='Value', ax = ax[0])
df_eu.plot.line(x = 'Year', y = 'Value', ax = ax[1])
df_eu.plot.bar(x = 'Year', y = 'Value', rot = 45, ax = ax[2]) plt.show()

다음과 같은 표준 인수 중 일부는 rotation 주장은 실제로 다르다 plot() 전화. 예를 들어, rotation 로 단축된다 rot. 이로 인해 약간 까다로워집니다. 그냥 바꿔 Matplotlib와 Pandas 사이에서 문서 페이지로 끝날 가능성이 높으므로 어떤 인수를 적용할 수 있고 어떤 인수를 적용할 수 없는지 확인하면 됩니다.

이제 새로 만드는 대신 Figure or Axes 예를 들어, 이러한 각 플롯은 적절한 위치에 배치됩니다. Axes 우리가 제공한 인스턴스:

Pandas PlatoBlockchain 데이터 인텔리전스를 사용한 데이터 시각화. 수직 검색. 일체 포함.

일반적으로 Pandas를 사용하여 플로팅하는 것은 편리하고 빠릅니다. 하지만 막대 플롯, 선 플롯 및 상자 플롯을 그리는 경우 Matplotlib을 사용하는 것이 좋습니다. Pandas가 필연적으로 사용하는 기본 엔진이자 더 많은 사용자 정의 옵션이 있으며 Pandas 플롯에 사용할 수 있는 새로운 인수 세트를 기억할 필요가 없습니다.

즉, 일부 플롯의 경우 다음을 선호할 수 있습니다. 판다, Matplotlib에서 수동으로 작성해야 하고 그 중 일부는 KDE 라인과 같이 노력할 가치가 없도록 만들기가 너무 번거롭기 때문입니다.

팬더' 플로팅 모듈

DataFrame시각화 측면에서 제공해야 하는 기능은 우리에게 그리 새로운 것은 아닙니다. 그러나 그들이 호출하는 기본 모듈은 pandas.plotting 그렇습니다. 그만큼 plotting 모듈에는 다음과 같이 사용할 수 있는 여러 기능이 있습니다. autocorrelation_plot(), bootstrap_plot()scatter_matrix().

이들 각각은 다음 중 하나를 받아들입니다. Series 또는 DataFrame, 생성하는 시각화 유형과 사양 및 스타일 지정 목적을 위한 특정 매개변수에 따라 달라집니다.

부트스트랩 플롯

부트 스트랩 데이터 세트를 무작위로 샘플링(교체)하고 다음과 같은 정확도 측정값을 계산하는 프로세스입니다. 바이어스, 변화신뢰 구간 무작위 샘플의 경우. 실제 용어로 "교체 포함"은 무작위로 선택된 각 요소를 다시 선택할 수 있음을 의미합니다. 교체하지 않고 이는 무작위로 선택된 각 요소 후에 다음 샘플을 위해 풀에서 제거된다는 것을 의미합니다.

A 부트스트랩 플롯Pandas가 생성한 는 샘플을 기반으로 데이터 세트의 평균, 중앙값 및 중간 범위 통계를 부트스트랩합니다. size, 그 후 플롯은 이후에 다음을 통해 표시됩니다. plt.show(). 에 대한 기본 인수 sizesamples are 50500 각각.

즉, 기능에 대해 샘플링을 수행합니다. 50 가치. 그런 다음 해당 50개 값에 대해 50개 요소로 구성된 하위 샘플(합성 데이터)이 생성되고 해당 값에 대한 요약 통계(평균/중앙값/중간 범위)가 계산됩니다. 이 과정이 반복됩니다 500 결국 우리는 500개의 요약 통계를 얻었습니다.

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('./datasets/gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] pd.plotting.bootstrap_plot(df_eu['Value']) plt.show()

Pandas PlatoBlockchain 데이터 인텔리전스를 사용한 데이터 시각화. 수직 검색. 일체 포함.

자기상관도

자기상관 도표 시계열 데이터의 경우 데이터 무작위성을 확인하는 데 사용됩니다. 다수의 자기상관 서로 다른 타임스탬프에 대해 계산되며 데이터가 실제로 무작위인 경우 상관 관계는 거의 0에 가까울 것입니다. 그렇지 않은 경우 상관관계는 0보다 커집니다.

두 개의 자기상관 플롯을 그려보겠습니다. 가치관 기능이 있고 Series 임의의 값으로 채워집니다.

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
# Filter DataFrame for the EU
df_eu = df.loc[df['Country Name'] == 'European Union']
# Generate 50 random integers between 0 and 100, and turn into a Series
random_series = pd.Series(np.random.randint(0, 100, size=50)) # Plot Autocorrelation Plot for the *Value* feature
pd.plotting.autocorrelation_plot(df_eu['Value'])
# Plot Autocorrelation Plot for the *random_series*
pd.plotting.autocorrelation_plot(random_series) plt.show()

자기상관도 random_series 주위를 돌아야 한다 0, 이는 무작위 데이터이기 때문에 Value 기능은 다음을 수행하지 않습니다:

Pandas PlatoBlockchain 데이터 인텔리전스를 사용한 데이터 시각화. 수직 검색. 일체 포함.

자기상관이 다음 중 하나를 측정한다는 점은 주목할 가치가 있습니다. 형태 상관 관계가 없지만 무작위가 아닌 데이터가 존재하므로 무작위성이 있습니다. 무작위가 아니지만 유의미한 상관 관계가 없는 경우 자기상관 도표는 데이터가 무작위임을 나타냅니다.

분산형 행렬

분산형 행렬 플롯 그리드 모든 기능에 대한 모든 기능에 대한 산점도. 이는 필연적으로 각 기능을 자체와 비교하기 때문에 – 대각선 이런 일이 발생하는 경우 일반적으로 다음으로 대체됩니다. 히스토그램 분산형 차트가 아닌 해당 기능의 분산형 행렬 라고도합니다. 쌍 도표, Seaborn은 pairplot() 바로 이것을 위한 기능입니다.

XNUMXD덴탈의 scatter_matrix() 함수가 받아들인다 DataFrame 모든 수치 특성에 대해 분산형 매트릭스를 생성하고 다음의 2D 배열을 반환합니다. Axes 분산형 매트릭스를 구성하는 인스턴스입니다. 이에 대한 내용을 조정하려면 다음과 같이 반복해야 합니다.

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('worldHappiness2019.csv') axes = pd.plotting.scatter_matrix(df, diagonal='hist') for ax in axes.flatten(): # Rotate back to 0 degrees since they're automatically rotated by 90 ax.yaxis.label.set_rotation(0) # As to not overlap with the Axes instances, set the ticklabel # alignment to 'right' ax.yaxis.label.set_ha('right') plt.show()

이로 인해 다른 모든 기능에 비해 모든 기능의 다소 큰 분산형 매트릭스가 생성됩니다.

Pandas PlatoBlockchain 데이터 인텔리전스를 사용한 데이터 시각화. 수직 검색. 일체 포함.

당신은 또한 diagonal 인수, 받아들인다 'hist' or 'kde' 대각선에 표시할 분포도 유형을 지정하고 alpha, 산점도에서 마커의 반투명도를 지정합니다.

타임 스탬프 :

더보기 스택카부스