Trực quan hóa dữ liệu với Pandas PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Hình ảnh hóa dữ liệu với gấu trúc

Cho đến nay, Pandas đã hỗ trợ chúng tôi trong giai đoạn Tiền xử lý dữ liệu. Tuy nhiên, trong một trường hợp, khi tạo Biểu đồ, chúng tôi cũng đã sử dụng một mô-đun khác từ Pandas – plotting.

Cho đến nay, chúng tôi đã cố tình tránh điều này vì việc giới thiệu nó sớm hơn sẽ đặt ra nhiều câu hỏi hơn là câu trả lời. Cụ thể là Panda Matplotlib là một bộ đôi phổ biến đến mức Pandas đã bắt đầu tích hợp chức năng của Matplotlib. Nó nặng nề dựa vào Matplotlib để thực hiện bất kỳ sơ đồ thực tế nào và bạn sẽ tìm thấy nhiều hàm Matplotlib được gói trong mã nguồn. Ngoài ra, bạn có thể sử dụng các chương trình phụ trợ khác để vẽ đồ thị, chẳng hạn như Âm mưuBokeh.

Tuy nhiên, Pandas cũng giới thiệu cho chúng ta một số âm mưu không phải một phần của các loại cốt truyện tiêu chuẩn của Matplotlib, chẳng hạn như KDE, Đường cong Andrews, Các lô BootstrapMa trận phân tán.

Sản phẩm plot() chức năng của một con gấu trúc DataFrame sử dụng phần phụ trợ được chỉ định bởi plotting.backendvà tùy thuộc vào kind đối số - tạo một âm mưu bằng cách sử dụng thư viện đã cho. Vì có rất nhiều sự trùng lặp - sẽ không có ích gì nếu bao gồm các loại cốt truyện như line, bar, histscatter. Họ sẽ tạo ra nhiều biểu đồ giống nhau với cùng mã như chúng ta đã làm cho đến nay với Matplotlib.

Chúng ta sẽ chỉ xem xét ngắn gọn về plot() chức năng vì cơ chế cơ bản đã được khám phá cho đến nay. Thay vào đó, hãy tập trung vào một số đồ thị mà chúng ta không thể đã sẵn sàng làm với Matplotlib.

Đây sẽ là một chương rất ngắn, vì khả năng vẽ đồ thị và hiển thị của Pandas kém hơn so với Matplotlib – nhưng vẫn hữu ích nếu biết một số trong số này, cũng như nhận thức được khả năng vẽ đồ thị từ DataFrames trực tiếp.

Sản phẩm DataFrame.plot () Chức năng

Sản phẩm plot() hàm chấp nhận xy các tính năng và một kind lý lẽ. Ngoài ra, để tránh kind đối số, bạn cũng có thể gọi DataFrame.plot.kind() thay vào đó, và vượt qua xy tính năng.

Các giá trị được chấp nhận cho kind đối số là: line, bar, barh (thanh ngang), hist, box, kde, density (từ đồng nghĩa với kde), area, pie, scatterhexbin (tương tự như Bản đồ nhiệt).

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()

Thay vì cung cấp Series các trường hợp như chúng tôi làm với Matplotlib – chỉ cần cung cấp tên cộtvà vì bạn đang gọi plot() chức năng trên DataFrame bạn đang hình dung, thật dễ dàng để Pandas ánh xạ các giá trị chuỗi này tới các tên cột thích hợp.

Mỗi cuộc gọi này tạo ra một Figure ví dụ và vẽ các giá trị thích hợp trên đó:

Trực quan hóa dữ liệu với Pandas PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Để vẽ nhiều trục trên cùng một Figure, bạn có thể làm một Figure và một hoặc nhiều Axes thông qua plt.subplots() và chỉ định thích hợp Axes đến ax đối số của mỗi plot.plot_type() gọi:

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()

Một số đối số tiêu chuẩn, chẳng hạn như rotation đối số thực sự khác nhau trong plot() cuộc gọi. Ví dụ, rotation được rút ngắn thành rot. Điều này làm cho nó hơi khó khăn để chỉ cần chuyển đổi giữa Matplotlib và Pandas, vì rất có thể bạn sẽ truy cập vào các trang tài liệu, chỉ cần kiểm tra xem đối số nào có thể được áp dụng và đối số nào không.

Bây giờ, thay vì tạo một Figure or Axes ví dụ, mỗi lô đất này sẽ được đóng ở nơi thích hợp Axes các trường hợp chúng tôi đã cung cấp cho họ:

Trực quan hóa dữ liệu với Pandas PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Nhìn chung, việc vẽ đồ thị bằng Pandas rất tiện lợi và nhanh chóng – nhưng ngay cả như vậy, để vẽ đồ thị Thanh, Ô đường và Ô hộp, có thể bạn sẽ muốn sử dụng Matplotlib. Đó vừa là công cụ cơ bản mà Pandas chắc chắn sẽ sử dụng, vừa có nhiều tùy chọn tùy chỉnh hơn và bạn sẽ không phải nhớ một bộ đối số mới mà bạn có thể sử dụng với các biểu đồ Pandas.

Điều đó đang được nói, đối với một số âm mưu, bạn có thể muốn Gấu trúc, vì chúng phải được tạo thủ công trong Matplotlib và một số trong số chúng rất rắc rối đến mức không đáng nỗ lực, chẳng hạn như các dòng KDE.

gấu trúc' âm mưu Mô-đun

Điều gì DataFramenhững gì phải cung cấp về mặt trực quan không còn quá mới đối với chúng tôi. Tuy nhiên, mô-đun cơ bản mà họ gọi, pandas.plotting làm. Các plotting mô-đun có một số chức năng mà chúng tôi có thể sử dụng, chẳng hạn như autocorrelation_plot(), bootstrap_plot()scatter_matrix().

Mỗi người trong số này chấp nhận một Series hoặc một DataFrame, tùy thuộc vào loại hình ảnh trực quan mà họ đang tạo ra, cũng như các thông số nhất định để vẽ biểu đồ cho mục đích tạo kiểu và đặc tả.

Lô khởi động

khởi động là quá trình lấy mẫu ngẫu nhiên (có thay thế) một tập dữ liệu và tính toán các thước đo độ chính xác, chẳng hạn như thiên vị, không đúngkhoảng tin cậy đối với các mẫu ngẫu nhiên “Với sự thay thế”, về mặt thực tế, có nghĩa là mỗi phần tử được chọn ngẫu nhiên có thể được chọn lại. Không có vật thay thế có nghĩa là sau mỗi phần tử được chọn ngẫu nhiên, nó sẽ bị xóa khỏi nhóm cho mẫu tiếp theo.

A Lô khởi động, được tạo bởi Pandas bootstraps thống kê trung bình, trung bình và trung bình của tập dữ liệu, dựa trên mẫu size, sau đó, cốt truyện sau đó được hiển thị qua plt.show(). Các đối số mặc định cho sizesamples đang 50500 tương ứng.

Điều này có nghĩa là đối với một tính năng, chúng tôi lấy mẫu 50 các giá trị. Sau đó, một mẫu con gồm 50 phần tử được tạo (dữ liệu tổng hợp) cho 50 giá trị đó và thống kê tóm tắt (giá trị trung bình / giá trị trung bình / giá trị trung bình) được tính toán cho chúng. Quá trình này được lặp lại 500 lần, nên cuối cùng, chúng ta có 500 thống kê tóm tắt:

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()

Trực quan hóa dữ liệu với Pandas PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Ô tự tương quan

Lô tự tương quan được sử dụng để kiểm tra tính ngẫu nhiên của dữ liệu, đối với dữ liệu chuỗi thời gian. Nhiều tự tương quan được tính toán cho các dấu thời gian khác nhau và nếu dữ liệu thực sự ngẫu nhiên – mối tương quan sẽ gần bằng 0. Nếu không – mối tương quan sẽ lớn hơn 0.

Hãy vẽ hai Đồ thị tự tương quan – một với đồ thị của chúng ta Giá trị và một tính năng có Series chứa đầy các giá trị ngẫu nhiên:

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()

Biểu đồ tự tương quan cho random_series nên xoay quanh 0, vì đó là dữ liệu ngẫu nhiên, trong khi biểu đồ cho Value tính năng sẽ không:

Trực quan hóa dữ liệu với Pandas PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Điều đáng lưu ý là Tự tương quan đo lường một hình thức về tính ngẫu nhiên, vì dữ liệu không tương quan nhưng không ngẫu nhiên tồn tại. Nếu nó không ngẫu nhiên nhưng không có bất kỳ mối tương quan đáng kể nào – Biểu đồ Tự tương quan sẽ chỉ ra rằng dữ liệu là ngẫu nhiên.

Ma trận phân tán

Ma trận phân tán âm mưu một lưới điện của Biểu đồ phân tán cho tất cả các tính năng đối với tất cả các tính năng. Vì điều này chắc chắn sẽ so sánh từng tính năng với chính nó – đường chéo nơi điều này xảy ra thường được thay thế bằng Histogram của đối tượng địa lý đó, chứ không phải là Biểu đồ phân tán. Ma trận phân tán còn được gọi là Ghép lôvà Seaborn cung cấp một pairplot() chức năng chỉ cho điều này.

Sản phẩm scatter_matrix() hàm chấp nhận một DataFrame và tạo Ma trận phân tán cho tất cả các tính năng số của nó và trả về một mảng 2D của Axes các trường hợp bao gồm Ma trận phân tán. Để điều chỉnh bất cứ điều gì về chúng, bạn sẽ muốn lặp lại chúng:

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()

Điều này dẫn đến một Ma trận phân tán khá lớn của tất cả các tính năng so với tất cả các tính năng khác:

Trực quan hóa dữ liệu với Pandas PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Bạn cũng có thể vượt qua diagonal đối số, chấp nhận 'hist' or 'kde' để chỉ định loại biểu đồ phân phối mà bạn muốn vẽ trên đường chéo, cũng như alpha, chỉ định độ trong suốt của các điểm đánh dấu trong Lô phân tán.

Dấu thời gian:

Thêm từ xếp chồng lên nhau