Professional Documents
Culture Documents
DAIT002 Statistic Descriptive 08122023
DAIT002 Statistic Descriptive 08122023
DAIT002 Statistic Descriptive 08122023
import requests
💻
import pandas as pd
1.3 Giới thiệu về API World Bank.org
World Bank API là một dịch vụ cung cấp dữ liệu từ Ngân hàng Thế giới, một tổ chức tài
chính quốc tế cung cấp hỗ trợ tài chính và tư vấn cho các quốc gia phát triển. API cho phép
nhà phát triển và người sử dụng truy cập các tập dữ liệu kinh tế, xã hội, và môi trường từ
nhiều quốc gia trên thế giới.
Dữ Liệu Đa Dạng: API cung cấp truy cập đến nhiều loại dữ liệu, bao gồm thông tin về tài
chính, giáo dục, y tế, môi trường, và nhiều lĩnh vực khác.
Dữ Liệu Toàn Cầu: World Bank API cung cấp dữ liệu từ nhiều quốc gia trên thế giới, giúp
người dùng nắm bắt tình hình và xu hướng toàn cầu.
Thông Tin Thời Gian Thực và Lịch Sử: API cung cấp truy cập đến dữ liệu thời gian thực cũng
như dữ liệu lịch sử, cho phép người dùng theo dõi sự thay đổi và phát triển theo thời gian.
Chia Sẻ Dữ Liệu Mở: Dữ liệu từ World Bank API thường được cung cấp dưới dạng dữ liệu
mở, giúp khuyến khích sự chia sẻ và sử dụng rộng rãi.
API Endpoint: Các endpoint của API có thể được sử dụng để thực hiện các yêu cầu đến các
tập dữ liệu cụ thể và truy xuất thông tin chi tiết về các chỉ số kinh tế, xã hội.
Ngôn Ngữ Lập Trình: API có thể được tích hợp với nhiều ngôn ngữ lập trình thông dụng,
như Python, JavaScript, Java, và nhiều ngôn ngữ khác.
Để sử dụng API World Bank, bạn cần đăng ký và nhận một khóa API từ trang web chính
thức của World Bank. Sau đó, bạn có thể sử dụng khóa API này để thực hiện các yêu cầu
HTTP và truy xuất dữ liệu từ World Bank.
In [4]: # 1.1 Import thư viện request và thư viện pandas để lấy API
import requests
import pandas as pd
# Đường dẫn đến API của World Bank để lấy dữ liệu GDP
api_url = "http://api.worldbank.org/v2/country/VN/indicator/NY.GDP.MKTP.CD?format=json
In [6]: # 1.3 Kiểm tra xem yêu cầu có thành công hay không
if response.status_code == 200:
# Chuyển đổi dữ liệu JSON sang DataFrame sử dụng thư viện pandas
data = response.json()
df = pd.DataFrame(data[1])
# Lọc và hiển thị các cột cần thiết (năm và giá trị GDP)
df = df[['date', 'value']]
df.columns = ['Year', 'GDP']
print(df.head())
else:
print(f"Failed to fetch data. Status code: {response.status_code}")
Year GDP
0 2022 4.088024e+11
1 2021 3.661376e+11
2 2020 3.466158e+11
3 2019 3.343653e+11
4 2018 3.101065e+11
0 2022 4.088024e+11
1 2021 3.661376e+11
2 2020 3.466158e+11
3 2019 3.343653e+11
4 2018 3.101065e+11
5 2017 2.813536e+11
6 2016 2.570960e+11
7 2015 2.392583e+11
8 2014 2.334515e+11
9 2013 2.137088e+11
10 2012 1.955906e+11
11 2011 1.725950e+11
12 2010 1.472012e+11
13 2009 1.060147e+11
14 2008 9.913030e+10
15 2007 7.741443e+10
16 2006 6.637166e+10
17 2005 5.763326e+10
18 2004 4.542785e+10
19 2003 3.955251e+10
20 2002 3.506411e+10
21 2001 3.268520e+10
22 2000 3.117252e+10
23 1999 2.868366e+10
24 1998 2.720960e+10
25 1997 2.684370e+10
26 1996 2.465747e+10
27 1995 2.073616e+10
28 1994 1.628643e+10
29 1993 1.318095e+10
30 1992 9.866990e+09
31 1991 9.613370e+09
32 1990 6.471741e+09
33 1989 6.293305e+09
Year GDP
34 1988 2.542381e+10
35 1987 3.665811e+10
36 1986 2.633662e+10
37 1985 1.409469e+10
38 1984 NaN
39 1983 NaN
40 1982 NaN
41 1981 NaN
42 1980 NaN
43 1979 NaN
44 1978 NaN
45 1977 NaN
46 1976 NaN
47 1975 NaN
48 1974 NaN
49 1973 NaN
2. Xử lý dữ liệu 🐋
Chuyển dữ liệu từ kiểu Series sang int để thực hiện các phép so sánh trở nên dễ dàng
Lấy dữ liệu GDP Việt Nam từ 2000 đến 2022 ✒️
In [19]: df['Year'] = df['Year'].astype(int)
df_process_1
0 2022 4.088024e+11
1 2021 3.661376e+11
2 2020 3.466158e+11
3 2019 3.343653e+11
4 2018 3.101065e+11
5 2017 2.813536e+11
6 2016 2.570960e+11
7 2015 2.392583e+11
8 2014 2.334515e+11
9 2013 2.137088e+11
10 2012 1.955906e+11
11 2011 1.725950e+11
12 2010 1.472012e+11
13 2009 1.060147e+11
14 2008 9.913030e+10
15 2007 7.741443e+10
16 2006 6.637166e+10
17 2005 5.763326e+10
18 2004 4.542785e+10
19 2003 3.955251e+10
20 2002 3.506411e+10
21 2001 3.268520e+10
22 2000 3.117252e+10
Out[50]: 178119525213.19016
Out[51]: 172595034069.162
408802379068.229
31172518403.3162
💯
Name: GDP, dtype: float64
Out[54]: 1.5165629432368267e+22
Out[55]: 123148810113.4894
Out[39]: 209179284884.1315
Out[56]: 62002460278.227005
Out[57]: 207222353362.43298
Out[58]: 580058343684.3094
Out[59]: -248831069765.4225
Out[60]: 0.33650164130872817
Out[61]: -1.2461872011986999
In [73]: # Vẽ Histogram
plt.figure(figsize=(10, 6))
sns.histplot(df_process_1['GDP'],color='#c7675d', bins=20, kde=True)
plt.title('Histogram of Viet Nam GDP (2000 - 2022)')
plt.xlabel('GDP')
plt.ylabel('Frequency')
plt.show()
def descriptive_stats_and_plots(data):
"""
Thực hiện thống kê mô tả và vẽ Boxplot và Histogram cho dữ liệu GDP.
Parameters:
- data: Pandas Series hoặc NumPy array chứa dữ liệu GDP.
Returns:
None (Hiển thị biểu đồ và bảng thống kê mô tả).
"""
# Bảng thống kê mô tả
stats_table = data.describe()
# Vẽ Boxplot và Histogram
plt.figure(figsize=(15, 6))
localhost:8888/nbconvert/html/DAIT002 - Thống kê Python/DAIT002_Statistic_Descriptive_08122023.ipynb?download=false 9/14
12/8/23, 11:54 AM DAIT002_Statistic_Descriptive_08122023
# Boxplot
plt.subplot(1, 2, 1)
sns.boxplot(x=data, color='lightblue', fliersize=5)
plt.title('Boxplot of GDP')
# Histogram
plt.subplot(1, 2, 2)
sns.histplot(data, bins=20, kde=True, color='lightblue', edgecolor='black')
plt.title('Histogram of GDP')
plt.xlabel('GDP')
plt.ylabel('Frequency')
# Sử dụng hàm với dữ liệu GDP của bạn (đặt tên DataFrame và cột GDP thích hợp)
descriptive_stats_and_plots(df_process_1['GDP'])
GDP
count 2.300000e+01
mean 1.781195e+11
std 1.231488e+11
min 3.117252e+10
25% 6.200246e+10
50% 1.725950e+11
75% 2.692248e+11
max 4.088024e+11
variance 1.516563e+22
std_dev 1.231488e+11
range 3.776299e+11
IQR 2.072224e+11
skewness 3.365016e-01
kurtosis -1.246187e+00
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
In [87]: df
Out[87]: Variable_1 Variable_2 Variable_3 Variable_4 Variable_5 Variable_6 Variable_7 Variable_8 Variab
Yêu cầu 2. Bạn hãy thống kê mô tả của 5 Quốc Gia bất kì trong 11
Quốc Gia
In [ ]:
Yêu cầu 3. Vẽ biểu đồ Boxplot và Line Chart của 11 Quốc Gia trên
một biểu đồ và nhận xét nó
In [ ]:
Bạn hãy thêm cột Growth_Rate vào mỗi quốc gia. Sau vẽ biểu đồ Line Chart về chỉ số này
của 11 quốc gia
Nhận xét tốc độ tăng trưởng bằng hình vẽ và bằng số liệu của thống kê mô tả
In [ ]: