phân tích dữ liệu với python sử dụng pandas

58 0 0
Tài liệu đã được kiểm tra trùng lặp
phân tích dữ liệu với python sử dụng pandas

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục lụcThư viện pandas là gì?...Cài đặt Pandas...Giới thiệu qua về matplotlib...Bắt đầu với Pyplot...Tạo một biểu đồ đơn giản...Nhiều biểu đồ trong 1 figure...Tạo các loại biểu đồ khác n

Trang 2

Mục lục

Thư viện pandas là gì?

Cài đặt Pandas

Giới thiệu qua về matplotlib

Bắt đầu với Pyplot

Tạo một biểu đồ đơn giản

Nhiều biểu đồ trong 1 figure

Tạo các loại biểu đồ khác nhau với Pyplot

Đọc file csv sử dụng thư viện pandas

Thao tác với dataframe trong pandas

Xem thông tin của dataframe

Truy xuất dữ liệu trên dataframe

Giới thiệu qua về Numpy Array

Thêm, sửa, xóa trong dataframe

Hiểu dữ liệu trong dataframe

Tạo mới dataframe

Tạo mới dataframe từ python dictionary

Tạo mới dataframe từ các python list

Một số thao tác khác trên dataframe

Sắp xếp dataframe

Nối 2 dataframe

Xáo trộn các bản ghi trong dataframe

Lưu dataframe về file csv

Tổng kết

Tài nguyên lập trình

Hỗ trợ tư vấn, định hướng

Trang 3

LỜI MỞ ĐẦU

Chào mừng đến với tài liệu về thư viện Pandas trong phân tích dữ liệu! Pandas làmột trong những thư viện quan trọng nhất trong lĩnh vực này, cho phép chúng tathao tác với dữ liệu một cách linh hoạt và hiệu quả hơn Với Pandas, chúng ta cóthể đọc và ghi dữ liệu từ nhiều nguồn khác nhau, xử lý và phân tích dữ liệu mộtcách dễ dàng, và thực hiện nhiều loại biểu đồ và trực quan hóa để hiểu rõ hơn vềdữ liệu của mình.

Trong tài liệu này, chúng ta sẽ tìm hiểu về các khái niệm cơ bản trong Pandas, baogồm Pyplot, Arrays, Datatypes… và các phương pháp thao tác và xử lý dữ liệuthông qua các ví dụ cụ thể Bên cạnh đó, chúng ta cũng sẽ đề cập đến các chủ đềliên quan như tải dữ liệu từ các nguồn khác nhau, trực quan hóa dữ liệu và xử lý dữliệu bị thiếu.

Tài liệu này được thiết kế để giúp bạn có một sự hiểu biết tổng quan về thư việnPandas và cách sử dụng nó để phân tích dữ liệu một cách hiệu quả Nếu bạn là mộtnhà phân tích dữ liệu hoặc một nhà khoa học dữ liệu mới bắt đầu với Pandas, thìtài liệu này sẽ là một tài nguyên hữu ích để bắt đầu Hãy cùng bắt đầu khám pháthế giới của Pandas!

Ban biên tập CodeGym.

Trang 4

Thư viện pandas python là gì? Nó có thể giúp bạn những gì và làm sao để sử dụngthư viện pandas này trong lập trình python Hãy cùng đi tìm câu trả lời cho các câuhỏi trên trong bài viết ngày hôm nay Nó chắc chắn sẽ đem lại cho các bạn nhiềukiến thức bổ ích và làm chủ được cách sử dụng thư viện này.

Thư viện pandas là gì?

Thư viện pandas trong python là một thư viện mã nguồn mở, hỗ trợ đắc lực trongthao tác dữ liệu Đây cũng là bộ công cụ phân tích và xử lý dữ liệu mạnh mẽ củangôn ngữ lập trình python Thư viện này được sử dụng rộng rãi trong cả nghiêncứu lẫn phát triển các ứng dụng về khoa học dữ liệu Thư viện này sử dụng mộtcấu trúc dữ liệu riêng là Dataframe Pandas cung cấp rất nhiều chức năng xử lý vàlàm việc trên cấu trúc dữ liệu này Chính sự linh hoạt và hiệu quả đã khiến chopandas được sử dụng rộng rãi.

Tại sao sử dụng thư viện pandas?

● DataFrame đem lại sự linh hoạt và hiệu quả trong thao tác dữ liệu và lập chỉmục;

● Là một công cụ cho phép đọc/ ghi dữ liệu giữa bộ nhớ và nhiều định dạngfile: csv, text, excel, sql database, hdf5;

● Liên kết dữ liệu thông minh, xử lý được trường hợp dữ liệu bị thiếu Tựđộng đưa dữ liệu lộn xộn về dạng có cấu trúc;

● Dễ dàng thay đổi bố cục của dữ liệu;

● Tích hợp cơ chế trượt, lập chỉ mục, lấy ra tập con từ tập dữ liệu lớn.

Trang 5

● Có thể thêm, xóa các cột dữ liệu;

● Tập hợp hoặc thay đổi dữ liệu với group by cho phép bạn thực hiện các toántử trên tập dữ liệu;

● Hiệu quả cao trong trộn và kết hợp các tập dữ liệu;

● Lập chỉ mục theo các chiều của dữ liệu giúp thao tác giữa dữ liệu cao chiềuvà dữ liệu thấp chiều;

● Tối ưu về hiệu năng;

● Pandas được sử dụng rộng rãi trong cả học thuật và thương mại Bao gồmthống kê, thương mại, phân tích, quảng cáo,…

Cài đặt Pandas

Để cài đặt thư viện Pandas, bạn có thể làm theo một số cách khác nhau:

1 Sử dụng pip: pip install pandas

2 Sử dụng conda: conda install pandas

Bây giờ chúng ta sẽ bắt đầu học cách sử dụng thư viện pandas python Nhưngtrước khi bắt đầu, hãy import thư viện pandas nhé Chúng ta sẽ dùng cả thư việnmatplotlib nữa.

# Render our plots inline%matplotlib inlineimport pandas as pd

Trang 6

Giới thiệu qua về matplotlib

Để thực hiện các suy luận thống kê cần thiết, cần phải trực quan hóa dữ liệu củabạn và Matplotlib là một trong những giải pháp như vậy cho người dùng Python.Nó là một thư viện vẽ đồ thị rất mạnh mẽ hữu ích cho những người làm việc vớiPython và NumPy Module được sử dụng nhiều nhất của Matplotib là Pyplot cungcấp giao diện như MATLAB nhưng thay vào đó, nó sử dụng Python và nó lànguồn mở.

Để cài đặt Matplotlib nếu bạn có Anaconda chỉ cần gõ conda install matplotlib hoặc sửdụng tools pip pip install matplotlib

Một Matplotlib figure có thể được phân loại thành nhiều phần như dưới đây:

Figure: Như một cái cửa sổ chứa tất cả những gì bạn sẽ vẽ trên đó.

Axes: Thành phần chính của một figure là các axes (những khung nhỏ hơn

để vẽ hình lên đó) Một figure có thể chứa một hoặc nhiều axes Nói cáchkhác, figure chỉ là khung chứa, chính các axes mới thật sự là nơi các hình vẽđược vẽ lên.

Axis: Chúng là dòng số giống như các đối tượng và đảm nhiệm việc tạo các

giới hạn biểu đồ.

Artist: Mọi thứ mà bạn có thể nhìn thấy trên figure là một artist

như Text objects, Line2D objects, collection objects Hầu hết các Artistsđược gắn với Axes.

Bắt đầu với Pyplot

Pyplot là một module của Matplotlib cung cấp các hàm đơn giản để thêm các thànhphần plot như lines, images, text, v.v vào các axes trong figure.

Tạo một biểu đồ đơn giản

import matplotlib.pyplot as pltimport numpy as np

Trang 7

Ở đây chúng ta import Matplotlib’s Pyplot module và thư viện Numpy vì hầu hết các dữ liệu mà ta sẽ làm việc sẽ chỉ ở dạng

Chúng ta chuyển hai mảng làm đối số đầu vào cho phương thức plot() và sử dụng phương thức show() để gọi biểu đồ được yêu cầu Ở đây lưu ý rằng mảng đầu tiên xuất hiện trên trục x và mảng thứ hai xuất hiện trên trục y của biểu đồ Bây giờ, biểu đồ đầu tiên của chúng ta đã sẵn sàng, chúng ta hãy thêm tiêu đề và đặt tên trụcx và trục y bằng cách sử dụng các phương thức title(), xlabel() và ylabel().

Trang 8

Chúng ta cũng có thể chỉ định kích thước của hình bằng cách sử dụng phương thức figure() và truyền các giá trị dưới dạng một tuple về độ dài của các hàng và cột cho đối số figsize

Trang 9

Với mỗi đối số X và Y, bạn cũng có thể chuyển một đối số thứ ba tùy chọn dưới dạng một chuỗi cho biết màu sắc và loại đường của biểu đồ Định dạng mặc định

là b- có nghĩa là một đường màu xanh lam đặc Trong hình dưới đây, mình sử dụng go có nghĩa là vòng tròn màu xanh lá cây Tương tự như vậy, chúng ta có thể

thực hiện nhiều kết hợp như vậy để định dạng biểu đồ của mình.

Trang 10

Chúng ta cũng có thể vẽ nhiều bộ dữ liệu bằng cách chuyển vào nhiều bộ đối số của trục X và Y trong phương thức plot() như bên dưới.

Trang 11

Nhiều biểu đồ trong 1 figure

Chúng ta có thể sử dụng phương thức subplot() để thêm nhiều plots trong một hình Trong hình ảnh bên dưới, mình đã sử dụng phương pháp này để phân tách hai biểu đồ mà đã vẽ trên cùng một trục trong ví dụ trước Phương thức subplot() có ba đối số: nrows, ncols và index Chúng chỉ ra số lượng hàng, số cột và số index của sub-plot Ví dụ, mình muốn tạo hai sub-plot trong một hình sao cho nó nằm trên một hàng

Trang 12

Nếu ta muốn các sub-plots thành hai hàng và một cột, chúng ta có thể truyền các đối số (2,1,1) và (2,1,2)

Trang 13

Cách tạo ra subplots trên đây trở nên hơi tẻ nhạt khi chúng ta muốn có nhiều

subplots trong hình Một cách thuận tiện hơn là sử dụng phương thức subpltots() Lưuý sự khác biệt của các giá trị trong cả hai phương thức Phương thức này lấy hai đối số nrows và ncols làm số lượng hàng và số cột tương ứng Phương thức này tạo ra

Trang 14

Tạo các loại biểu đồ khác nhau với Pyplot

1 Biểu đồ thanh

Biểu đồ thanh là một trong những loại biểu đồ phổ biến nhất và được sử dụng để hiển thị dữ liệu được liên kết với các biến phân loại Pyplot cung cấp một phương thức bar() để tạo các biểu đồ thanh có các đối số: biến phân loại, giá trị và màu sắc của chúng (nếu bạn muốn chỉ định bất kỳ)

Trang 15

Để tạo biểu đồ thanh ngang sử dụng phương thức barh() Ngoài ra, chúng ta có thể truyền đối số (với giá trị của nó) xerr or yerr (trong trường hợp biểu đồ thanh dọc ở trên) để mô tả phương sai trong dữ liệu của chúng ta như sau:

Trang 16

Để tạo các biểu đồ thanh xếp chồng theo chiều ngang, ta sử dụng phương

thức bar() hai lần và chuyển các đối số trong đó ta đề cập đến index và width của biểu đồ thanh để xếp chúng theo chiều ngang Ngoài ra, chú ý việc sử dụng hai phương thức legend() được sử dụng để hiển thị chú giải của biểu đồ và xticks() để gắn nhãn trục x dựa trên vị trí của các thanh.

Trang 17

Tương tự, để xếp theo chiều dọc các biểu đồ thanh với nhau, chúng ta có thể sử dụng đối số bottom và đề cập đến biểu đồ thanh mà chúng ta muốn xếp chồng bên dưới làm giá trị của nó.

Trang 18

2 Biểu đồ tròn

Một loại biểu đồ cơ bản nữa là biểu đồ Pie có thể được tạo bằng phương thức pie() Chúng ta cũng có thể chuyển các đối số để tùy chỉnh biểu đồ Pie của mình để hiển thị shadow, explode một phần của nó, nghiêng nó theo một góc như sau:

Trang 19

3 Histogram Histogram là một loại biểu đồ rất phổ biến khi chúng ta xem xét dữ

liệu như chiều cao và cân nặng, giá cổ phiếu, thời gian chờ đợi của một khách hàng, v.v liên tục trong tự nhiên Histogram's data được vẽ trong một phạm vi sovới tần số của nó Histograms là các biểu đồ xuất hiện rất phổ biến trong xác suất và thống kê và tạo cơ sở cho các distributions khác nhau như normal -distribution, t-distribution, v.v Trong ví dụ sau, chúng ta tạo dữ liệu liên tục ngẫu nhiên gồm 1000 entries và vẽ biểu đồ theo tần số của nó với dữ liệu chia thành 10 tầng bằng nhau Mình đã sử dụng phương thức random.randn() của NumPy's để tạo dữ liệu với các thuộc tính của standard normal distribution, nghĩa là = 0 và độ lệch chuẩn = 1 và do đó biểu đồ trông giống như một đường cong normal distribution.

Trang 20

4 Sơ đồ phân tán và 3 chiều

Các biểu đồ phân tán là các biểu đồ được sử dụng rộng rãi, đặc biệt là chúng có íchtrong việc hình dung một vấn đề về hồi quy Trong ví dụ sau, cung cấp dữ liệu được tạo tùy ý về chiều cao và cân nặng và vẽ chúng với nhau Mình đã sử dụng các phương thức xlim() và ylim() để đặt giới hạn của trục X và trục Y tương ứng.

Trang 21

Sự phân tán ở trên cũng có thể được hình dung trong ba chiều Để sử dụng chức năng này, trước tiên ta cần import module mplot3d như sau:

from mpl_toolkits import mplot3d

Trang 22

Chúng ta cũng có thể tạo các biểu đồ 3 chiều của các loại khác như biểu đồ đường, bề mặt, khung lưới, đường viền, v.v Ví dụ trên ở dạng biểu đồ đường đơn giản như sau: Ở đây thay vì scatter3D() chúng ta sử dụng phương thức plot3D()

Trang 23

Đọc file csv sử dụng thư viện pandas

Bạn có thể dễ dàng đọc vào một file csv bằng cách sử dụng hàm read_csv và được trả về 1 dataframe Mặc định, hàm này sẽ phân biệt các trường của file csv theo dấu phẩy Cách đọc hết sức đơn giản như sau:

peoples_df = pd.read_csv('./people.csv')

Bạn có thể in ra n bản ghi đầu tiên của dataframe sử dụng hàm head Ngược lại của hàm head là hàm tail

Trang 24

Kết quả:

Tuy nhiên, bạn cũng sẽ phải lưu ý một vài tham số của hàm read_csv như:

encoding: chỉ định encoding của file đọc vào Mặc định là utf-8.

sep: thay đổi dấu ngăn cách giữa các cột Mặc định là dấu phẩy (‘,’)

header: chỉ định file đọc vào có header(tiêu đề của các cột) hay không Mặc

định là infer.

index_col: chỉ định chỉ số cột nào là cột chỉ số(số thứ tự) Mặc định là None.

n_rows: chỉ định số bản ghi sẽ đọc vào Mặc định là None – đọc toàn bộ.

Trang 25

Thao tác với dataframe trong pandasXem thông tin của dataframe

Bạn có thể xem thông tin của dataframe vừa đọc vào bằng cách sử dụng

hàm .info() hoặc xem kích thước của dataframe này với thuộc tính shape Cụ thể như sau:

# Xem chiều dài của df, tương đương shape[0]print('Len:', len(peoples_df))

# Xem thông tin dataframe vừa đọc đượcpeoples_df.info()

# Xem kích thước của dataframeprint('Shape:', peoples_df.shape)

Và kết quả thu được là:

Len: 40

<class 'pandas.core.frame.DataFrame'>RangeIndex: 40 entries, 0 to 39

Data columns (total 11 columns):person_ID 40 non-null int64name 40 non-null objectfirst 40 non-null objectlast 40 non-null object

Trang 26

fax 40 non-null objecttitle 40 non-null objectage 40 non-null int64is_young 40 non-null booldtypes: bool(1), int64(2), object(8)memory usage: 3.2+ KB

Shape: (40, 11)

Truy xuất dữ liệu trên dataframe

Lấy 1 cột theo tên cột

Để chỉ định cột muốn lấy, bạn chỉ cần truyền vào tên cột như sau:

peoples_df['name']

Trang 27

Lấy theo nhiều cột

Thay vì truyền vào 1 string thì hãy truyền vào 1 list các tên cột Mình thêm .head(5) để chỉ in ra 5 bản ghi đầu tiên cho ngắn, mặc định sẽ lấy hết.

peoples_df[['name', 'age']].head(5)

Trang 28

Lấy bản ghi theo chỉ số

Để lấy một hoặc nhiều bản ghi liên tiếp trong dataframe, sử dụng cơ chế trượt theo chỉ số giống như trên list trong python Lấy 5 bản ghi đầu tiên:

Trang 29

Một ví dụ khác: Lấy tất cả các bản ghi chứa thông tin của người có chức danh là giáo sư:

professor = peoples_df[peoples_df.title == 'Professor']professor.head(5)

Hoặc 1 ví dụ so sánh chuỗi như sau:

name_compare = peoples_df['name'].str.contains('Rosella')name_compare.head(5)

Kết quả thu được là một dataframe có 1 cột chưa 2 giá trị True hoặc False

0 True1 False

Trang 30

Name: name, dtype: bool

Lấy giá trị trả về numpy arrays

Để lấy giá trị của một cột trả về dưới dạng numpy array trong thư viện pandas python, bạn chỉ cần thêm .values vào sau, ví dụ:

Output bạn thu được như sau:

array(['Burks, Rosella ', 'Avila, Damien ', 'Olsen, Robin ', 'Moises, Edgar Estes', 'Brian, Heath Pruitt',

'Claude, Elvin Haney', 'Mosley, Edmund ', 'Derek, Antoine Mccoy', 'Hawkins, Callie ', 'Pate, Andrea ', 'Austin, Liz ',

'Kendrick, Reba Alford', 'Sims, Angelina ', 'Mullins, Kimberly ', 'Chuck, Lloyd Haney', 'Payne, Ladonna ',

'Baxter, Johnathan Browning', 'Weiss, Gilbert ',

'Deirdre, Florence Barrera', 'Fernando, Toby Calderon', 'Garrison, Patrica ', 'Effie, Leila Vinson', 'Buckley, Rose ', 'Stanton, Kathie ', 'Banks, Shannon ', 'Barnes, Cleo ', 'Brady, Nellie ', 'Katheryn, Ruben Holt', 'Michael, Dianne ', 'Grant, Adam ', 'Head, Kurtis ', 'Berger, Jami ',

'Earline, Jaime Fitzgerald', 'Evelyn, Summer Frost', 'Quentin, Sam Hyde', 'Dunlap, Ann ', 'Shields, Rich Pena', 'Page, Winnie ', 'Sparks, Ezra ', 'Kaufman, Elba '], dtype=object)

Trang 31

Giới thiệu qua về Numpy Array

Numpy là một thư viện lõi phục vụ cho khoa học máy tính của Python, hỗ trợ cho việc tính toán các mảng nhiều chiều, có kích thước lớn với các hàm đã được tối ưu áp dụng lên các mảng nhiều chiều đó Numpy đặc biệt hữu ích khi thực hiện các hàm liên quan tới Đại Số Tuyến Tính.

Để cài đặt numpy nếu bạn có Anaconda chỉ cần gõ conda install numpy hoặc sử dụng tools pip pip install numpy.

Sau khi cài đặt xong, trong Python, chúng ta cần khai báo import numpy để có thể bắt đầu sử dụng các hàm của numpy Vì numpy là thư viện được sử dụng thường

xuyên nên nó thường được khai báo gọn lại thành np import numpy as np np có thể thay thế bằng các từ khác, tuy nhiên bạn nên đặt là np vì các tài liệu hướng dẫn

đều ngầm quy ước như thế.

Một mảng numpy là một lưới các giá trị, và tất cả các giá trị có dùng kiểu giá trị,

và được lập chỉ mục bởi một số nguyên không âm, số chiều được gọi là rank của mảng Numpy, và shape là một tuple các số nguyên đưa ra kích thước của mảng

theo mỗi chiều.

Chúng ta có thể khởi tạo numpy arrays từ nested Python lists, và dùng dấu ngoặc vuông để truy cập từng phần tử

import numpy as np

a = np.array([1, 2, 3]) # Tạo một numpy array với rank = 1

print(type(a)) # Sẽ in ra "<class 'numpy.ndarray'>"

Ngày đăng: 16/05/2024, 06:50

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan