Pandas סייעה לנו עד כה בשלב של עיבוד מוקדם של נתונים. למרות שבמקרה אחד, בזמן יצירת היסטוגרמות, השתמשנו גם במודול אחר מ-Pandas - plotting
.
נמנענו בכוונה מכאן עד כה, כי הצגתו מוקדם יותר תעלה יותר שאלות ממה שהוא ענה. כלומר, פנדות ו Matplotlib היו צמד שכיח כל כך בכל מקום, עד ש-Pandas החלה לשלב את הפונקציונליות של Matplotlib. זה בִּכְבֵדוּת מסתמך על Matplotlib כדי לבצע כל תכנון ממשי, ותמצא פונקציות רבות של Matplotlib עטופות בקוד המקור. לחלופין, אתה יכול להשתמש ב-backends אחרים לצורך תכנון, כגון בעלילה ו bokeh.
עם זאת, Pandas גם מציג לנו כמה עלילות כי הם לא חלק מסוגי העלילה הסטנדרטיים של Matplotlib, כגון KDEs, אנדרוז עקומות, עלילות Bootstrap ו פיזור מטריצות.
השמיים plot()
פונקציה של פנדה DataFrame
משתמש בקצה האחורי שצוין על ידי plotting.backend
, ובהתאם ל- kind
ארגומנט - יוצר עלילה באמצעות הספרייה הנתונה. מכיוון שהרבה מאלה חופפים - אין טעם לכסות סוגי עלילה כמו line
, bar
, hist
ו scatter
. הם ייצרו כמעט את אותן עלילות עם אותו קוד כפי שעשינו עד כה עם Matplotlib.
נסקור רק בקצרה את plot()
תפקוד מאז המנגנון הבסיסי נחקר עד כה. במקום זאת, בואו נתמקד בחלק מהעלילות שאנו לא יכול כבר לעשות בקלות עם Matplotlib.
זה יהיה פרק קצר מאוד, מכיוון שיכולות ההזימה וההדמיה של פנדס מחווירות בהשוואה ל-Matplotlib - אבל עדיין כדאי לדעת על כמה מהן, כמו גם להיות מודע ליכולת לתכנן מ-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
(בדומה ל-Heatmap).
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
אתה מדמיין, קל לפנדות למפות את ערכי המחרוזות האלה לשמות העמודות המתאימים.
כל אחת מהשיחות הללו עושה שיחה חדשה Figure
מופע ומשרטט עליו את הערכים המתאימים:
לצייר מספר צירים על אותו הדבר 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 הוא נוח ומהיר - אבל למרות זאת, עבור תכנון בר עלילות, קווי עלילות ו-Box Plot, סביר להניח שתרצה ללכת עם Matplotlib. זה גם המנוע הבסיסי שבו Pandas משתמשת בהכרח, וגם יש לו יותר אפשרויות התאמה אישית, ולא תצטרך לזכור סט חדש של טיעונים שתוכל להשתמש בהם עם עלילות Pandas.
עם זאת, עבור חלק מהעלילות, אולי תרצה להעדיף פנדות, מכיוון שהם יצטרכו להיעשות באופן ידני ב-Matplotlib, וחלקם הם כל כך טרחה לעשות שזה לא שווה את המאמץ, כגון שורות KDE.
פנדות' הִתנַכְּלוּת מודול
מה DataFrame
שיש לה להציע מבחינת ויזואליזציה אינה חדשה מדי עבורנו. עם זאת, המודול הבסיסי שהם מכנים, pandas.plotting
עושה. ה plotting
למודול יש מספר פונקציות שאנו יכולים להשתמש בהן, כגון autocorrelation_plot()
, bootstrap_plot()
, ו scatter_matrix()
.
כל אחד מאלה מקבל או א Series
או DataFrame
, בהתאם לסוג ההדמיה שהם מייצרים, כמו גם פרמטרים מסוימים למטרות תכנון מפרט וסגנון.
עלילת Bootstrap
הפעלת אתחול הוא תהליך של דגימה אקראית (עם החלפה) של מערך נתונים, וחישוב מדדי דיוק כגון הטיה, שונות ו רווחי סמך עבור הדגימות האקראיות. "עם החלפה", במונחים מעשיים, אומר שניתן לבחור שוב כל רכיב שנבחר באקראי. ללא תחליף פירושו שלאחר כל רכיב שנבחר באקראי, הוא מוסר מהמאגר עבור המדגם הבא.
A עלילת Bootstrap, שנוצר על ידי Pandas אתחול הסטטיסטיקה הממוצעת, החציונית והבינונית של מערך נתונים, בהתבסס על המדגם 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()
עלילת קורלציה אוטומטית
עלילות אוטוקורלציה משמשים לבדיקת אקראיות נתונים, עבור נתונים מסדרות זמן. מרובות אוטוקורלציות מחושבים עבור חותמות זמן שונות, ואם הנתונים הם באמת אקראיים - המתאם יהיה קרוב לאפס. אם לא - המתאם יהיה גדול מאפס.
בואו נתווה שתי עלילות אוטוקורלציה - אחת עם שלנו ערך תכונה, ואחד עם א 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
תכונה לא:
ראוי לציין ש-Autocorrelation מודד אחד טופס של אקראיות, כבלתי מתאם, אבל נתונים לא אקראיים אכן קיימים. אם זה לא אקראי, אבל אין לו מתאמים משמעותיים - עלילת הקורלציה האוטומטית תציין שהנתונים הם אקראיים.
פיזור מטריצות
פיזור מטריצות עלילה א רשת של עלילות פיזור עבור כל התכונות מול כל התכונות. מכיוון שזה בהכרח משווה כל תכונה עם עצמה, גם - ה אלכסוני שבו זה קורה מוחלף בדרך כלל ב-a היסטוגרמה של תכונה זו, במקום עלילת פיזור. פיזור מטריצות ידועים גם כ זוג עלילות, וסיבורן מציעה א 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()
זה גורם למטריצת פיזור גדולה למדי של כל התכונות מול כל התכונות האחרות:
אתה יכול גם לעבור ב diagonal
טיעון, שמקבל 'hist'
or 'kde'
כדי לציין איזה סוג של חלקת הפצה תרצה לצייר באלכסון, כמו גם alpha
, ציון השקיפות של הסמנים ב-Catter Plots.
- 100
- אודות
- תעשיות
- כְּבָר
- אחר
- טיעונים
- סביב
- להיות
- קצת
- אריזה מקורית
- שיחה
- יכולות
- הפרק
- בדיקה
- קוד
- טור
- Common
- מדינה
- זוג
- יוצרים
- נתונים
- אחר
- הפצה
- אֵירוֹפִּי
- האיחוד האירופי
- דוגמה
- מאפיין
- תכונות
- להתמקד
- פונקציה
- פונקציונלי
- כללי
- ליצור
- HTTPS
- IT
- ידוע
- גָדוֹל
- גדול יותר
- סִפְרִיָה
- קו
- מַפָּה
- מַטרִיצָה
- רוב
- כלומר
- שמות
- ליד
- הַצָעָה
- המיוחדות שלנו
- אפשרויות
- אחר
- שלב
- בריכה
- תהליך
- לייצר
- לספק
- למטרות
- להעלות
- RE
- החליף
- תוצאות
- החזרות
- אמר
- נבחר
- סט
- קצר
- משמעותי
- דומה
- So
- קוד מקור
- מפרט
- החל
- סטטיסטיקה
- המקור
- דרך
- התאחדות
- us
- ערך
- ראיה
- מה
- ויקיפדיה
- ראוי
- X
- שנה
- אפס