import pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport io# Wczytaj dane do DataFramedf = pd.read_csv('dataset/economic_data.csv')# Wyświetl pierwsze kilka wierszy oryginalnego DataFrameprint("Oryginalny DataFrame:")print(df.head())# Użyj pivot do przekształcenia danych# Dla każdego wskaźnika tworzymy osobny pivot, aby otrzymać dane w formie odpowiedniej do wykresów# Przekształcenie danych za pomocą pivot dla każdego wskaźnikagdp_growth_pivot = df[df['Indicator'] =='GDP Growth'].pivot(index='Year', columns='Country', values='Value')inflation_pivot = df[df['Indicator'] =='Inflation'].pivot(index='Year', columns='Country', values='Value')unemployment_pivot = df[df['Indicator'] =='Unemployment'].pivot(index='Year', columns='Country', values='Value')# Wyświetl przekształcone DataFramesprint("\nDataFrame GDP Growth po transformacji pivot:")print(gdp_growth_pivot)print("\nDataFrame Inflation po transformacji pivot:")print(inflation_pivot)print("\nDataFrame Unemployment po transformacji pivot:")print(unemployment_pivot)# Ustawienie stylu dla lepszej estetykisns.set_style("whitegrid")plt.figure(figsize=(18, 12))# Lista kolorów dla lepszego rozróżnienia krajówcolors = ['#1f77b4', '#ff7f0e', '#2ca02c']# Wykres wzrostu PKBplt.subplot(3, 1, 1)for i, country inenumerate(gdp_growth_pivot.columns): plt.plot(gdp_growth_pivot.index, gdp_growth_pivot[country], marker='o', linewidth=2.5, label=country, color=colors[i])plt.title('Wzrost PKB (%) według krajów (2018-2023)', fontsize=16, fontweight='bold')plt.ylabel('Wzrost PKB (%)', fontsize=14)plt.grid(True, alpha=0.3)plt.legend(loc='upper left', fontsize=12)plt.axhline(y=0, color='black', linestyle='-', alpha=0.2) # Linia na poziomie 0%# Wykres inflacjiplt.subplot(3, 1, 2)for i, country inenumerate(inflation_pivot.columns): plt.plot(inflation_pivot.index, inflation_pivot[country], marker='s', linewidth=2.5, label=country, color=colors[i])plt.title('Stopa inflacji (%) według krajów (2018-2023)', fontsize=16, fontweight='bold')plt.ylabel('Stopa inflacji (%)', fontsize=14)plt.grid(True, alpha=0.3)plt.legend(loc='upper left', fontsize=12)# Wykres bezrobociaplt.subplot(3, 1, 3)for i, country inenumerate(unemployment_pivot.columns): plt.plot(unemployment_pivot.index, unemployment_pivot[country], marker='^', linewidth=2.5, label=country, color=colors[i])plt.title('Stopa bezrobocia (%) według krajów (2018-2023)', fontsize=16, fontweight='bold')plt.xlabel('Rok', fontsize=14)plt.ylabel('Stopa bezrobocia (%)', fontsize=14)plt.grid(True, alpha=0.3)plt.legend(loc='upper left', fontsize=12)plt.tight_layout(pad=3.0)plt.savefig('wskazniki_ekonomiczne.png', dpi=300, bbox_inches='tight')plt.show()
Oryginalny DataFrame:
Year Country Indicator Value
0 2018 USA GDP Growth 2.9
1 2018 USA Inflation 2.4
2 2018 USA Unemployment 3.9
3 2018 Germany GDP Growth 1.1
4 2018 Germany Inflation 1.9
DataFrame GDP Growth po transformacji pivot:
Country Germany Japan USA
Year
2018 1.1 0.6 2.9
2019 0.6 0.3 2.3
2020 -4.6 -4.5 -3.4
2021 2.9 1.6 5.7
2022 1.8 1.0 2.1
2023 0.3 1.9 2.5
DataFrame Inflation po transformacji pivot:
Country Germany Japan USA
Year
2018 1.9 1.0 2.4
2019 1.4 0.5 1.8
2020 0.5 0.0 1.2
2021 3.1 0.3 4.7
2022 6.9 2.5 8.0
2023 5.9 3.1 4.1
DataFrame Unemployment po transformacji pivot:
Country Germany Japan USA
Year
2018 3.4 2.4 3.9
2019 3.2 2.4 3.7
2020 4.2 2.8 8.1
2021 3.6 2.8 5.4
2022 3.0 2.6 3.6
2023 3.1 2.5 3.7