Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Phân tích và trực quan hóa dữ liệu trong Python

Python cung cấp nhiều thư viện cho phân tích và trực quan hóa dữ liệu, chủ yếu numpy, pandas, matplotlib, seaborn, v.v. Phần này thảo luận về thư viện pandas cho phân tích và trực quan hóa dữ liệu - thư viện mã nguồn mở xây dựng trên numpy.

Nó cho phép phân tích nhanh, làm sạch và chuẩn bị dữ liệu. Pandas cũng cung cấp nhiều tính năng trực quan hóa tích hợp sẵn như dưới đây.

Cài đặt

Để cài pandas, chạy lệnh sau trong terminal:

pip install pandas

Hoặc nếu có Anaconda, dùng:

conda install pandas

Pandas - DataFrames

DataFrame là công cụ chính khi làm việc với pandas.

Mã

import numpy as np
import pandas as pd
from numpy.random import randn
np.random.seed(50)
df = pd.DataFrame(randn(6,4), ['a','b','c','d','e','f'], ['w','x','y','z'])
df

Kết quả


w x y z
a -1.560352 -0.030978 -0.620928 -1.464580
b 1.411946 -0.476732 -0.780469 1.070268
c -1.282293 -1.327479 0.126338 0.862194
d 0.696737 -0.334565 -0.997526 1.598908
e 3.314075 0.987770 0.123866 0.742785
f -0.393956 0.148116 -0.412234 -0.160715

Pandas - Dữ liệu thiếu (Missing Data)

Xem một số cách tiện lợi xử lý dữ liệu thiếu trong pandas, tự động điền 0 hoặc NaN.

import numpy as np
import pandas as pd
from numpy.random import randn

d = {'A': [1,2,np.nan], 'B': [9, np.nan, np.nan], 'C': [1,4,9]}
df = pd.DataFrame(d)
df

Kết quả



A B C
0 1.0 9.0 1
1 2.0 NaN 4
2 NaN NaN 9

Vậy có 3 giá trị thiếu.

df.dropna()




A B C
0 1.0 9.0 1


df.dropna(axis=1)




C
0 1
1 4
2 9


df.dropna(thresh=2)




A B C
0 1.0 9.0 1
1 2.0 NaN 4


df.fillna(value=df.mean())




A B C
0 1.0 9.0 1
1 2.0 9.0 4
2 1.5 9.0 9

Pandas - Nhập dữ liệu (Import data)

Đọc file CSV từ máy cục bộ (trường hợp của tôi) hoặc trực tiếp từ web.

# Nhập thư viện pandas
import pandas as pd

# Đọc file CSV gán cho biến DataFrame df
df = pd.read_csv("SYB61_T03_Population Growth Rates in Urban areas and Capital cities.csv", encoding="ISO-8859-1")

# Đọc 5 phần tử đầu từ DataFrame
df.head()

Kết quả

Phân tích và trực quan hóa dữ liệu trong Python

Đọc số hàng và cột trong DataFrame hoặc file CSV.

# Đếm số hàng và cột
df.shape

Kết quả

(4166, 9)

Pandas - Toán học DataFrame

Các phép toán trên DataFrame dùng các công cụ thống kê của pandas.

# Tính toán các thống kê tóm tắt, loại trừ giá trị NaN
df.describe()

Kết quả

Phân tích và trực quan hóa dữ liệu trong Python

# Tính thứ hạng dữ liệu số
df.rank()

Kết quả

Phân tích và trực quan hóa dữ liệu trong Python

.....

.....

Phân tích và trực quan hóa dữ liệu trong Python

Pandas - Vẽ biểu đồ

import matplotlib.pyplot as plt

years = [1981, 1991, 2001, 2011, 2016]
Average_populations = [716493000, 891910000, 1071374000, 1197658000, 1273986000]
plt.plot(years, Average_populations)
plt.title("Census of India: sample registration system")
plt.xlabel("Year")
plt.ylabel("Average_populations")
plt.show()

Kết quả

Phân tích và trực quan hóa dữ liệu trong Python

Biểu đồ phân tán của dữ liệu trên:

plt.scatter(years, Average_populations)


Phân tích và trực quan hóa dữ liệu trong Python

Histogram:

import matplotlib.pyplot as plt
Average_populations = [716493000, 891910000, 1071374000, 1197658000, 1273986000]
plt.hist(Average_populations, bins=10)
plt.xlabel("Average_populations")
plt.ylabel("Frequency")
plt.show()

Kết quả

Phân tích và trực quan hóa dữ liệu trong Python