การสร้างภาพข้อมูลด้วย Pandas PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การสร้างภาพข้อมูลด้วย Pandas

Pandas ได้ช่วยเหลือเราในขั้นตอนของการประมวลผลข้อมูลล่วงหน้า แม้ว่าในกรณีหนึ่ง ในขณะที่สร้างฮิสโตแกรม เรายังใช้โมดูลอื่นจาก Pandas – plotting.

เราจงใจหลีกเลี่ยงมาจนถึงตอนนี้ เพราะการแนะนำก่อนหน้านี้จะทำให้เกิดคำถามมากกว่าที่จะตอบ กล่าวคือ แพนด้า และ Matplotlib เป็นคู่หูที่แพร่หลาย ซึ่ง Pandas ได้เริ่มรวมฟังก์ชันการทำงานของ Matplotlib แล้ว มัน หนัก อาศัย Matplotlib ในการลงจุดใดๆ และคุณจะพบกับฟังก์ชัน Matplotlib มากมายที่รวมอยู่ในซอร์สโค้ด หรือคุณสามารถใช้แบ็กเอนด์อื่นๆ สำหรับการวางแผน เช่น พล็อต และ Bokeh.

อย่างไรก็ตาม นุ่นยังแนะนำให้เรารู้จักกับสองแปลงที่ ไม่ได้ ส่วนหนึ่งของประเภทพล็อตมาตรฐานของ Matplotlib เช่น KDE, แอนดรูว์ เคอร์เวส, Bootstrap พล็อต และ เมทริกซ์กระจาย.

พื้นที่ plot() หน้าที่ของแพนด้า DataFrame ใช้แบ็กเอนด์ที่ระบุโดย plotting.backendและขึ้นอยู่กับ kind อาร์กิวเมนต์ – สร้างพล็อตโดยใช้ไลบรารีที่กำหนด เนื่องจากมีความเหลื่อมล้ำกันมากมาย – จึงไม่มีประโยชน์ที่จะครอบคลุมประเภทพล็อตเช่น line, bar, hist และ scatter. พวกเขาจะผลิตแปลงเดียวกันมากด้วยรหัสเดียวกันกับที่เราเคยทำกับ Matplotlib

เราจะดูเพียงสั้น ๆ ที่ plot() ฟังก์ชั่นตั้งแต่กลไกพื้นฐานได้รับการสำรวจแล้ว ให้เน้นที่แปลงที่เรา ไม่ได้ ทำกับ Matplotlib ได้แล้ว

นี่จะเป็นบทที่สั้นมาก เนื่องจากความสามารถในการวางแผนและการแสดงภาพของ Pandas นั้นอ่อนเมื่อเปรียบเทียบกับ Matplotlib – แต่ก็ยังมีประโยชน์ที่จะรู้บางส่วนเหล่านี้ รวมทั้งตระหนักถึงความสามารถในการพล็อตจาก DataFrameโดยตรง

พื้นที่ DataFrame.plot() ฟังก์ชัน

พื้นที่ plot() ฟังก์ชั่นยอมรับ x และ y คุณสมบัติและ kind ข้อโต้แย้ง. อีกทางหนึ่งเพื่อหลีกเลี่ยง kind อาร์กิวเมนต์คุณยังสามารถเรียก DataFrame.plot.kind() แทนและผ่านใน x และ y คุณสมบัติ

ค่าที่ยอมรับสำหรับ kind อาร์กิวเมนต์คือ: line, bar, barh (แถบแนวนอน), hist, box, kde, density (คำพ้องสำหรับ kde), area, pie, scatter และ hexbin (คล้ายกับแผนที่ความร้อน)

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 Data Intelligence ค้นหาแนวตั้ง AI.

เพื่อพล็อตหลายแกนบนเดียวกัน 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()

อาร์กิวเมนต์มาตรฐานบางตัว เช่น the rotation อาร์กิวเมนต์แตกต่างกันจริงใน plot() โทร. ตัวอย่างเช่น, rotation สั้นลงถึง rot. สิ่งนี้ทำให้ยุ่งยากเล็กน้อยในการ แค่เปลี่ยน ระหว่าง Matplotlib และ Pandas เนื่องจากคุณมักจะจบลงที่หน้าเอกสาร เพียงแค่ตรวจสอบว่าข้อโต้แย้งใดที่สามารถใช้ได้และข้อใดที่ไม่สามารถทำได้

ตอนนี้แทนที่จะสร้างใหม่ Figure or Axes ตัวอย่าง แต่ละแปลงเหล่านี้จะประจำการอยู่ในความเหมาะสม Axes อินสแตนซ์ที่เราได้จัดเตรียมไว้ด้วย:

การสร้างภาพข้อมูลด้วย Pandas PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

โดยทั่วไป การวางแผนด้วย Pandas นั้นสะดวกและรวดเร็ว – แต่สำหรับการวางแผน Bar Plots, Line Plots และ Box Plots คุณอาจต้องการใช้ Matplotlib เป็นทั้งเอ็นจิ้นพื้นฐานที่ Pandas ใช้อย่างหลีกเลี่ยงไม่ได้ และยังมีตัวเลือกการปรับแต่งเพิ่มเติมอีกด้วย และคุณไม่จำเป็นต้องจำข้อโต้แย้งชุดใหม่ที่คุณสามารถใช้กับแผนการของ Pandas

ที่ถูกกล่าวว่าสำหรับบางแปลงคุณอาจต้องการที่จะชอบ นุ่นเนื่องจากจะต้องสร้างด้วยตนเองใน Matplotlib และบางรายการก็ยุ่งยากจนไม่คุ้มกับความพยายาม เช่น สาย KDE

หมีแพนด้า พล็อต โมดูล

อะไร DataFrameมีการนำเสนอในแง่ของการแสดงภาพไม่ใช่เรื่องใหม่สำหรับเรา อย่างไรก็ตาม โมดูลพื้นฐานที่พวกเขาเรียกว่า pandas.plotting ทำ. plotting โมดูลมีฟังก์ชันหลายอย่างที่เราสามารถใช้ได้ เช่น autocorrelation_plot(), bootstrap_plot()และ scatter_matrix().

แต่ละคนยอมรับ a . อย่างใดอย่างหนึ่ง Series หรือ DataFrameขึ้นอยู่กับประเภทของการแสดงภาพที่พวกเขากำลังสร้าง ตลอดจนพารามิเตอร์บางอย่างสำหรับข้อมูลจำเพาะการวางแผนและการจัดรูปแบบ

Bootstrap พล็อต

ร่วมมือ เป็นกระบวนการสุ่มตัวอย่าง (พร้อมการแทนที่) ชุดข้อมูล และคำนวณการวัดความถูกต้อง เช่น อคติ, ความแปรปรวน และ ช่วงความเชื่อมั่น สำหรับการสุ่มตัวอย่าง “ด้วยการแทนที่” ในทางปฏิบัติหมายความว่าแต่ละองค์ประกอบที่เลือกแบบสุ่มสามารถเลือกได้อีกครั้ง โดยไม่ต้องเปลี่ยน หมายความว่าหลังจากแต่ละองค์ประกอบที่เลือกแบบสุ่มแล้ว จะถูกลบออกจากพูลสำหรับตัวอย่างถัดไป

A Bootstrap พล็อตสร้างขึ้นโดย Pandas bootstraps สถิติเฉลี่ย ค่ามัธยฐาน และระดับกลางของชุดข้อมูล ตามตัวอย่าง sizeหลังจากนั้นจะแสดงโครงเรื่องผ่านทาง plt.show(). อาร์กิวเมนต์เริ่มต้นสำหรับ size และ samples เป็น 50 และ 500 ตามลำดับ

ซึ่งหมายความว่าสำหรับคุณสมบัติ เราสุ่มตัวอย่าง 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 Data Intelligence ค้นหาแนวตั้ง AI.

พล็อตความสัมพันธ์อัตโนมัติ

พล็อตความสัมพันธ์อัตโนมัติ ใช้เพื่อตรวจสอบการสุ่มข้อมูลสำหรับข้อมูลอนุกรมเวลา หลายรายการ ความสัมพันธ์อัตโนมัติ ถูกคำนวณสำหรับการประทับเวลาที่แตกต่างกัน และหากข้อมูลเป็นแบบสุ่มอย่างแท้จริง ความสัมพันธ์จะใกล้ศูนย์ ถ้าไม่ – ความสัมพันธ์จะมากกว่าศูนย์

มาพลอต Autocorrelation Plot สองแบบกัน – อันหนึ่งกับของเรา ความคุ้มค่า คุณสมบัติและอีกอันหนึ่งที่มี a 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()

พล็อต Autocorrelation สำหรับ random_series ควรหมุนรอบ 0เนื่องจากเป็นข้อมูลสุ่มในขณะที่พล็อตสำหรับ Value คุณลักษณะจะไม่:

การสร้างภาพข้อมูลด้วย Pandas PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เป็นที่น่าสังเกตว่า Autocorrelation วัดหนึ่ง ฟอร์ม ของการสุ่ม เนื่องจากไม่มีความสัมพันธ์กัน แต่มีข้อมูลที่ไม่สุ่มอยู่ หากไม่ใช่แบบสุ่ม แต่ไม่มีความสัมพันธ์ที่มีนัยสำคัญ – พล็อตความสัมพันธ์อัตโนมัติจะระบุว่าข้อมูลนั้นเป็นแบบสุ่ม

เมทริกซ์กระจาย

เมทริกซ์กระจาย พล็อต a ตะแกรง ของ Scatter Plots สำหรับคุณลักษณะทั้งหมดเทียบกับคุณลักษณะทั้งหมด เนื่องจากสิ่งนี้ย่อมเปรียบเทียบแต่ละฟีเจอร์กับตัวมันเองเช่นกัน – the เส้นทแยงมุม โดยที่สิ่งนี้เกิดขึ้นมักจะถูกแทนที่ด้วย a Histogram ของคุณลักษณะนั้น แทนที่จะเป็นโครงแบบกระจาย เมทริกซ์กระจาย ยังเป็นที่รู้จักกันในนาม แปลงคู่และซีบอร์นเสนอ a pairplot() ทำงานเพื่อการนี้เท่านั้น

พื้นที่ scatter_matrix() ฟังก์ชั่นยอมรับ a DataFrame และสร้าง Scatter Matrix สำหรับคุณสมบัติเชิงตัวเลขทั้งหมด และส่งคืนอาร์เรย์ 2D ของ Axes อินสแตนซ์ที่ประกอบด้วย Scatter Matrix หากต้องการปรับแต่งอะไรเกี่ยวกับสิ่งเหล่านี้ คุณจะต้องทำซ้ำผ่านสิ่งเหล่านี้:

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

ส่งผลให้มี Scatter Matrix ที่ค่อนข้างใหญ่ของคุณลักษณะทั้งหมดเมื่อเทียบกับคุณลักษณะอื่นๆ ทั้งหมด:

การสร้างภาพข้อมูลด้วย Pandas PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

นอกจากนี้คุณยังสามารถผ่านใน diagonal อาร์กิวเมนต์ซึ่งยอมรับ 'hist' or 'kde' เพื่อระบุประเภทของแผนภาพการกระจายที่คุณต้องการลงจุดในแนวทแยงเช่นเดียวกับ alphaโดยระบุความโปร่งแสงของเครื่องหมายในแผนภาพกระจาย

ประทับเวลา:

เพิ่มเติมจาก สแต็ค