تصور البيانات باستخدام ذكاء بيانات Pandas PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

تصور البيانات مع الباندا

لقد ساعدتنا Pandas حتى الآن في مرحلة المعالجة المسبقة للبيانات. بالرغم من ذلك، في إحدى الحالات، أثناء إنشاء الرسوم البيانية، استخدمنا أيضًا وحدة أخرى من Pandas - plotting.

لقد تجنبنا ذلك عمدًا حتى الآن، لأن تقديمه مبكرًا من شأنه أن يثير أسئلة أكثر مما يجيب. وهي الباندا و كان Matplotlib ثنائيًا شائعًا في كل مكان، لدرجة أن Pandas بدأت في دمج وظائف Matplotlib. هو - هي بشكل كبير يعتمد على Matplotlib للقيام بأي تخطيط فعلي، وستجد العديد من وظائف Matplotlib ملفوفة في الكود المصدري. وبدلاً من ذلك، يمكنك استخدام الواجهات الخلفية الأخرى للتخطيط، مثل Plotly و خوخه.

ومع ذلك، الباندا يقدم لنا أيضًا بعض المؤامرات ليست جزء من أنواع مؤامرة Matplotlib القياسية، مثل كيدي, منحنيات أندروز, مؤامرات التمهيد و مصفوفات مبعثرة.

plot() وظيفة الباندا DataFrame يستخدم الواجهة الخلفية المحددة بواسطة plotting.backend، واعتمادًا على ملف kind الوسيطة - تولد قطعة أرض باستخدام المكتبة المحددة. نظرًا لأن الكثير من هذه التداخلات - فلا فائدة من تغطية أنواع الحبكات مثل line, bar, hist و scatter. سوف ينتجون نفس المؤامرات بنفس الكود الذي كنا نفعله حتى الآن مع Matplotlib.

سنلقي نظرة سريعة فقط على plot() وظيفة منذ أن تم استكشاف الآلية الأساسية حتى الآن. بدلا من ذلك، دعونا نركز على بعض المؤامرات التي لدينا لا يمكن بالفعل تفعل بسهولة مع Matplotlib.

سيكون هذا فصلًا قصيرًا جدًا، نظرًا لأن قدرات Pandas في التخطيط والتصور تتضاءل مقارنةً بـ Matplotlib - ولكن لا يزال من المفيد معرفة بعض هذه الميزات، بالإضافة إلى إدراك القدرة على التخطيط من DataFrames مباشرة.

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. البحث العمودي. منظمة العفو الدولية.

لرسم محاور متعددة على نفس الشيء 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 أمرًا مريحًا وسريعًا - ولكن حتى مع ذلك، بالنسبة للتخطيط لـ Bar Plots و Line Plots و Box Plots، فمن المحتمل أنك ستحتاج إلى استخدام Matplotlib. إنه المحرك الأساسي الذي تستخدمه Pandas حتمًا، ويحتوي أيضًا على المزيد من خيارات التخصيص، ولن تضطر إلى تذكر مجموعة جديدة من الوسائط التي يمكنك استخدامها مع مؤامرات Pandas.

ومع ذلك، بالنسبة لبعض المؤامرات، قد ترغب في تفضيلها الباندا، نظرًا لأنه يجب أن يتم تصنيعها يدويًا في Matplotlib، وبعضها يمثل مشكلة كبيرة في صنعها بحيث لا يستحق كل هذا الجهد، مثل خطوط KDE.

الباندا التخطيط وحدة

ابحث عن DataFrameما يجب أن تقدمه من حيث التصور ليس جديدًا جدًا بالنسبة لنا. ومع ذلك، فإن الوحدة الأساسية التي يسمونها، pandas.plotting هل. ال plotting تحتوي الوحدة على العديد من الوظائف التي يمكننا استخدامها، مثل autocorrelation_plot(), bootstrap_plot()و scatter_matrix().

كل واحد منهم يقبل إما أ Series أو DataFrame، اعتمادًا على نوع التصور الذي ينتجونه، بالإضافة إلى معلمات معينة لمواصفات التخطيط وأغراض التصميم.

مؤامرة التمهيد

إلباس الحذاء هي عملية أخذ عينات عشوائيًا (مع الاستبدال) لمجموعة بيانات، وحساب مقاييس الدقة مثل انحياز, فرق و فترات الثقة للعينات العشوائية "مع الاستبدال"، من الناحية العملية، يعني أنه يمكن اختيار كل عنصر تم اختياره عشوائيًا مرة أخرى. من دون بديل يعني أنه بعد كل عنصر محدد عشوائيًا، تتم إزالته من المجموعة للعينة التالية.

A مؤامرة التمهيد، التي أنشأتها Pandas تعمل على تمهيد إحصائيات المتوسط ​​والوسيط ومتوسطة المدى لمجموعة البيانات، بناءً على العينة size، وبعد ذلك يتم عرض المؤامرة لاحقًا عبر plt.show(). الحجج الافتراضية ل size و samples . 50 و 500 على التوالي.

وهذا يعني أنه بالنسبة للميزة، فإننا نأخذ عينة 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. البحث العمودي. منظمة العفو الدولية.

مؤامرة الارتباط التلقائي

مؤامرات الارتباط التلقائي تستخدم للتحقق من عشوائية البيانات، لبيانات السلاسل الزمنية. عديد الارتباطات التلقائية يتم حسابها لطوابع زمنية مختلفة، وإذا كانت البيانات عشوائية حقًا، فسيكون الارتباط قريبًا من الصفر. إذا لم يكن الأمر كذلك - فإن الارتباط سيكون أكبر من الصفر.

دعونا نرسم مخططين للارتباط التلقائي - أحدهما مع مخططنا القيم ميزة، وواحدة مع 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() وظيفة فقط لهذا.

scatter_matrix() تقبل الدالة أ DataFrame وينتج مصفوفة مبعثرة لجميع ميزاتها العددية، ويعيد مصفوفة ثنائية الأبعاد من 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، مع تحديد شفافية العلامات في المخططات المبعثرة.

الطابع الزمني:

اكثر من ستاكابوز