billionaries-wizualizacja/EDA_Billionairesv2 .ipynb
2024-04-14 20:22:39 +02:00

664 KiB
Raw Blame History

Statystyki miliarderów

Zbiór danych zawiera statystyki dotyczące miliarderów na świecie, zawarte są również ich dane osobowe, branże którymi się zajmują oraz firmy.

Źródło

Potencjalne wykresy

  • Analiza rozkładu majątku: Zbadanie rozkład majątku miliarderów w różnych branżach, krajach i regionach.

  • Analiza demograficzna: Przedstawienie wieku, płeci i miejsca urodzenia miliarderów.

  • Samodzielnie wytworzone vs. odziedziczone bogactwo: Analiza odseteku samodzielnie stworzonych miliarderów i tych, którzy odziedziczyli swój majątek.

  • Wskaźniki ekonomiczne: Zbadanie korelacji między bogactwem miliarderów a wskaźnikami ekonomicznymi, takimi jak PKB, CPI (wskaźnik cen towarów i usług) i stawki podatkowe.

  • Analiza geoprzestrzenna: Wizualizacja geograficznego rozmieszczenia miliarderów i ich majątku na mapie.

  • Trendy w czasie: Prześledzenie zmian demograficznych i majątkowych miliarderów na przestrzeni lat.

Wykresy testowe oraz przedstawienie zbioru danych

import numpy as np # linear algebra
import warnings
warnings.filterwarnings("ignore")
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from matplotlib.ticker import FormatStrFormatter, StrMethodFormatter
plt.style.use('ggplot')
df = pd.read_csv('data.csv')
df.head()
rank finalWorth category personName age country city source industries countryOfCitizenship ... cpi_change_country gdp_country gross_tertiary_education_enrollment gross_primary_education_enrollment_country life_expectancy_country tax_revenue_country_country total_tax_rate_country population_country latitude_country longitude_country
0 1 211000 Fashion & Retail Bernard Arnault & family 74.0 France Paris LVMH Fashion & Retail France ... 1.1 $2,715,518,274,227 65.6 102.5 82.5 24.2 60.7 67059887.0 46.227638 2.213749
1 2 180000 Automotive Elon Musk 51.0 United States Austin Tesla, SpaceX Automotive United States ... 7.5 $21,427,700,000,000 88.2 101.8 78.5 9.6 36.6 328239523.0 37.090240 -95.712891
2 3 114000 Technology Jeff Bezos 59.0 United States Medina Amazon Technology United States ... 7.5 $21,427,700,000,000 88.2 101.8 78.5 9.6 36.6 328239523.0 37.090240 -95.712891
3 4 107000 Technology Larry Ellison 78.0 United States Lanai Oracle Technology United States ... 7.5 $21,427,700,000,000 88.2 101.8 78.5 9.6 36.6 328239523.0 37.090240 -95.712891
4 5 106000 Finance & Investments Warren Buffett 92.0 United States Omaha Berkshire Hathaway Finance & Investments United States ... 7.5 $21,427,700,000,000 88.2 101.8 78.5 9.6 36.6 328239523.0 37.090240 -95.712891

5 rows × 35 columns

df.isnull().sum()
rank                                             0
finalWorth                                       0
category                                         0
personName                                       0
age                                             65
country                                         38
city                                            72
source                                           0
industries                                       0
countryOfCitizenship                             0
organization                                  2315
selfMade                                         0
status                                           0
gender                                           0
birthDate                                       76
lastName                                         0
firstName                                        3
title                                         2301
date                                             0
state                                         1887
residenceStateRegion                          1893
birthYear                                       76
birthMonth                                      76
birthDay                                        76
cpi_country                                    184
cpi_change_country                             184
gdp_country                                    164
gross_tertiary_education_enrollment            182
gross_primary_education_enrollment_country     181
life_expectancy_country                        182
tax_revenue_country_country                    183
total_tax_rate_country                         182
population_country                             164
latitude_country                               164
longitude_country                              164
dtype: int64
ax = sns.histplot(df,x='finalWorth',bins = 20)
ax.set_title('Dystrybucja bogactwa miliarderów')
ax.set_xlabel('Majątek')
ax.set_ylabel('Liczba osób')
labels = [str(v) if v else '' for v in ax.containers[0].datavalues]
ax.bar_label(ax.containers[0], labels=labels)
plt.show()
ax = sns.barplot(df.head(10), x='finalWorth',y='personName', hue = 'personName', legend = False,orient='h', palette='rainbow')
ax.set_title('Najbardziej majętne osoby')
ax.set_xlabel('Osoba')
ax.set_ylabel('Majątek')
for container in ax.containers:
    ax.bar_label(container, fontsize=8)
plt.show()
ppl_in_countries = df.groupby('countryOfCitizenship')['rank'].count().reset_index().sort_values(by ='rank',ascending=False).head(20)
ax = sns.barplot(ppl_in_countries,x='rank',y='countryOfCitizenship',orient='h',hue = 'countryOfCitizenship', legend = False, palette='rainbow')
ax.set_title('Kraj z największą liczbą miliarderów')
ax.set_ylabel('Kraje')
ax.set_xlabel('Liczba milarderów')
for container in ax.containers:
    ax.bar_label(container, fontsize=8)
plt.show()
avg_age = df.groupby('country')['age'].mean().reset_index()
age_and_wealthy = df.groupby('age')['finalWorth'].mean()
sns.lineplot(df, x='age', y='finalWorth',errorbar=None)
plt.show()
d = df['gender']
d =d.map({'M': 'Mężczyźni', 'F': 'Kobiety'})
val = d.value_counts().values 
keys = d.value_counts().index
colors = sns.color_palette('rainbow')
ax = plt.pie(val, labels=keys, autopct='%.0f%%', explode = [0, 0.1], colors = colors,
            wedgeprops = {"edgecolor" : "black", 
                      'linewidth': 1, }) 
plt.show() 
ax = sns.boxplot(df, x= df['gender'], y = df['age'],hue = 'gender', legend = True, palette= 'flare')
ax.set_title('Rozkład wieku zależny od płci')
plt.show()
self_made_by_age = df[['age','selfMade']]
bins = [15,  25,  35,  45,  55,  65,  75,  85,  95, 105]
self_made_by_age['age'] = pd.cut(self_made_by_age['age'], bins = bins)
#self_made_by_age.loc[:, 'age'] = pd.cut(self_made_by_age['age'], bins=bins)
ax = sns.countplot(self_made_by_age, x = self_made_by_age['age'], hue = self_made_by_age['selfMade'], palette= 'flare' )
ax.tick_params(axis='x', rotation=45)
ax.set_title('Osoby, które same się dorobiły lub dostały majątek w spadku')
ax.set_ylabel('Liczba osób')
ax.set_xlabel('Wiek')
for i in ax.containers:
    ax.bar_label(i)
plt.show()
#category = df.explode('category')
categories = df.groupby('category')['rank'].count().sort_values(ascending=False).reset_index().head(20)
ax = sns.barplot(categories,x='rank',y='category',orient='h',hue = 'category', legend = False, palette='rainbow')
ax.set_title('Najpopularniejsze kategorie biznesu')
ax.set_ylabel('Kategoria')
ax.set_xlabel('Liczba osób')
for container in ax.containers:
    ax.bar_label(container, fontsize=8)
plt.show()
ax = sns.scatterplot(df,x='age', y='finalWorth', size='finalWorth', hue='category')
ax.set_title('Wiek miliarderów oraz ich branża')
ax.set_ylabel('Majątek')
ax.set_xlabel('Wiek')
hand, labl  = ax.get_legend_handles_labels()
unique_values_set = set(df['category'])
handout=[]
lablout=[]
for h,l in zip(hand,labl):
    if l in unique_values_set:
        lablout.append(l)
        handout.append(h)
ax.legend(handout, lablout,bbox_to_anchor=(1.49, 1), loc='upper right', borderaxespad=0)
plt.show()
plt.figure(figsize=(8, 6))
df['category'].value_counts().plot(kind='pie', autopct='%1.1f%%')
plt.title('Billionaires by Industry')
plt.axis('equal')
plt.show()
world_map = plt.figure(figsize=(12, 6))
ax = world_map.add_subplot(111)
df.groupby('country')['finalWorth'].sum().sort_values(ascending=False).head(10).plot(kind='bar', ax=ax)
plt.title('Top 10 Countries by Billionaire Wealth')
plt.xlabel('Country')
plt.ylabel('Total Wealth (USD)')
plt.xticks(rotation=90)
plt.show()