7 funkcij izrisovanja Pandas za hitro vizualizacijo podatkov - KDnuggets

7 funkcij za izris Pandas za hitro vizualizacijo podatkov – KDnuggets

Izvorno vozlišče: 2424631

7 funkcij za izris Pandas za hitro vizualizacijo podatkov
Slika, ustvarjena z modelom Segmind SSD-1B
 

When you’re analyzing data with pandas, you’ll use pandas functions for filtering and transforming the columns, joining data from multiple dataframes, and the like.

Toda pogosto je lahko koristno ustvariti diagrame – za vizualizacijo podatkov v podatkovnem okvirju – namesto samo gledanja številk. 

Pandas has several plotting functions you can use for quick and easy data visualization. And we’ll go over them in this tutorial.

🔗 Povezava do beležnice Google Colab (če želite kodirati zraven).

Let’s create a sample dataframe for analysis. We’ll create a dataframe called df_employees ki vsebuje evidence zaposlenih.

Uporabili bomo Ponarejevalec in NumPy-ji naključni modul za zapolnitev podatkovnega okvira z 200 zapisi.

Opombe: If you don’t have Faker  installed in your development environment, you can install it using pip: pip install Faker.

Zaženite naslednji delček za ustvarjanje in zapolnitev df_employees z zapisi:

import pandas as pd
from faker import Faker
import numpy as np # Instantiate Faker object
fake = Faker()
Faker.seed(27) # Create a DataFrame for employees
num_employees = 200
departments = ['Engineering', 'Finance', 'HR', 'Marketing', 'Sales', 'IT'] years_with_company = np.random.randint(1, 10, size=num_employees)
salary = 40000 + 2000 * years_with_company * np.random.randn() employee_data = { 'EmployeeID': np.arange(1, num_employees + 1), 'FirstName': [fake.first_name() for _ in range(num_employees)], 'LastName': [fake.last_name() for _ in range(num_employees)], 'Age': np.random.randint(22, 60, size=num_employees), 'Department': [fake.random_element(departments) for _ in range(num_employees)], 'Salary': np.round(salary), 'YearsWithCompany': years_with_company
} df_employees = pd.DataFrame(employee_data) # Display the head of the DataFrame
df_employees.head(10)

 

Postavili smo seme za ponovljivost. Torej vsakič, ko zaženete to kodo, boste dobili iste zapise.

Tukaj so prvi zapisi pogleda podatkovnega okvira:
 

7 funkcij za izris Pandas za hitro vizualizacijo podatkov
Izhod df_employees.head(10)

Raztreseni diagrami se običajno uporabljajo za razumevanje razmerja med katerima koli dvema spremenljivkama v naboru podatkov.

Za df_employees dataframe, let’s create a scatter plot to visualize the relationship between the age of the employee and the salary. This will help us understand if there is any correlation between the ages of the employees and their salaries.

Za ustvarjanje razpršenega grafa lahko uporabimo plot.scatter() tako:

# Scatter Plot: Age vs Salary
df_employees.plot.scatter(x='Age', y='Salary', title='Scatter Plot: Age vs Salary', xlabel='Age', ylabel='Salary', grid=True)

 

7 funkcij za izris Pandas za hitro vizualizacijo podatkov
 

Za ta primer podatkovnega okvira ne vidimo nobene povezave med starostjo zaposlenih in plačami.

Črtni prikaz je primeren za prepoznavanje trendov in vzorcev v zvezni spremenljivki, ki je običajno čas ali podobna lestvica.

Pri ustvarjanju df_employees dataframe smo definirali linearno razmerje med številom let, ki jih je zaposleni delal v podjetju, in njihovo plačo. Poglejmo torej črtni graf, ki prikazuje, kako se povprečne plače spreminjajo glede na število let.

Poiščemo povprečno plačo, razvrščeno po letih s podjetjem, nato pa z njim ustvarimo črtni prikaz plot.line()

# Line Plot: Average Salary Trend Over Years of Experience
average_salary_by_experience = df_employees.groupby('YearsWithCompany')['Salary'].mean()
df_employees['AverageSalaryByExperience'] = df_employees['YearsWithCompany'].map(average_salary_by_experience) df_employees.plot.line(x='YearsWithCompany', y='AverageSalaryByExperience', marker='o', linestyle='-', title='Average Salary Trend Over Years of Experience', xlabel='Years With Company', ylabel='Average Salary', legend=False, grid=True)

 

7 funkcij za izris Pandas za hitro vizualizacijo podatkov
 

Ker smo se odločili zapolniti polje plače z uporabo linearne povezave s številom let, ki jih je zaposleni delal v podjetju, vidimo, da črtni prikaz to odraža.

Histograme lahko uporabite za vizualizacijo porazdelitve neprekinjenih spremenljivk – tako da vrednosti razdelite na intervale ali zaboje – in prikažete število podatkovnih točk v vsakem zalogovniku.

Razumejmo porazdelitev starosti zaposlenih z uporabo histograma plot.hist() kot je prikazano:

# Histogram: Distribution of Ages
df_employees['Age'].plot.hist(title='Age Distribution', bins=15)

 

7 funkcij za izris Pandas za hitro vizualizacijo podatkov

Škatlasti izris je koristen pri razumevanju porazdelitve spremenljivke, njenega širjenja in za prepoznavanje izstopajočih vrednosti. 

Let’s create a box plot to compare the distribution of salaries across different departments—giving a high-level comparison of salary distribution within the organization.

Box plot bo prav tako pomagal pri prepoznavanju razpona plač in koristnih informacij, kot je povprečna plača in morebitni odstopanji za vsak oddelek.

Tukaj uporabljamo boxplot stolpca 'Plača', razvrščenega po 'Oddelku':

# Box Plot: Salary distribution by Department
df_employees.boxplot(column='Salary', by='Department', grid=True, vert=False)

 

7 funkcij za izris Pandas za hitro vizualizacijo podatkov
 

Iz škatlastega prikaza vidimo, da imajo nekateri oddelki večji razpon plač kot drugi.

Ko želite razumeti porazdelitev spremenljivk glede na pogostost pojavljanja, lahko uporabite stolpčni diagram.

Now let’s create a bar plot using plot.bar() za vizualizacijo števila zaposlenih: 

# Bar Plot: Department-wise employee count
df_employees['Department'].value_counts().plot.bar(title='Employee Count by Department')

 

7 funkcij za izris Pandas za hitro vizualizacijo podatkov

Ploščinske ploskve se običajno uporabljajo za vizualizacijo kumulativne porazdelitve spremenljivke po zvezni ali kategorični osi.

Za podatkovni okvir zaposlenih lahko narišemo kumulativno porazdelitev plač po različnih starostnih skupinah. Za preslikavo zaposlenih v koše glede na starostno skupino uporabljamo pd.cut()

Nato poiščemo kumulativno vsoto plačne skupine plačo glede na 'AgeGroup'. Da bi dobili površino parcele, uporabljamo plot.area():

# Area Plot: Cumulative Salary Distribution Over Age Groups
df_employees['AgeGroup'] = pd.cut(df_employees['Age'], bins=[20, 30, 40, 50, 60], labels=['20-29', '30-39', '40-49', '50-59'])
cumulative_salary_by_age_group = df_employees.groupby('AgeGroup')['Salary'].cumsum() df_employees['CumulativeSalaryByAgeGroup'] = cumulative_salary_by_age_group df_employees.plot.area(x='AgeGroup', y='CumulativeSalaryByAgeGroup', title='Cumulative Salary Distribution Over Age Groups', xlabel='Age Group', ylabel='Cumulative Salary', legend=False, grid=True)

 

7 funkcij za izris Pandas za hitro vizualizacijo podatkov

Tortni grafikoni so v pomoč, ko želite vizualizirati delež vsake kategorije v celoti. 

Za naš primer je smiselno ustvariti tortni grafikon, ki prikazuje porazdelitev plač po oddelkih v organizaciji. 

Najdemo skupno plačo zaposlenih, razvrščeno po oddelkih. In nato uporabite plot.pie() za risanje tortnega grafikona: 

# Pie Chart: Department-wise Salary distribution
df_employees.groupby('Department')['Salary'].sum().plot.pie(title='Department-wise Salary Distribution', autopct='%1.1f%%')

 

7 funkcij za izris Pandas za hitro vizualizacijo podatkov

Upam, da ste našli nekaj koristnih funkcij za risanje, ki jih lahko uporabite v pandah. 

Da, z matplotlib in seaborn lahko ustvarite veliko lepše risbe. Toda za hitro vizualizacijo podatkov so lahko te funkcije zelo priročne. 

Katere druge funkcije za risanje pand pogosto uporabljate? Sporočite nam v komentarjih.
 
 

Bala Priya C je razvijalec in tehnični pisec iz Indije. Rada dela na presečišču matematike, programiranja, znanosti o podatkih in ustvarjanja vsebin. Njena področja zanimanja in strokovnega znanja vključujejo DevOps, znanost o podatkih in obdelavo naravnega jezika. Uživa v branju, pisanju, kodiranju in kavi! Trenutno se uči in svoje znanje deli s skupnostjo razvijalcev, tako da piše vadnice, vodnike z navodili, mnenja in drugo.

Časovni žig:

Več od KDnuggets