Pandas là một thư viện Python mạnh mẽ, đa dạng và hiệu quả, được tạo ra để xử lý dữ liệu có cấu trúc một cách thuận tiện và tự nhiên. Tên “pandas” xuất phát từ “panel data” (dịch là “bảng dữ liệu”), và nó được thiết kế đặc biệt để làm cho công việc với dữ liệu cấu trúc (như bảng dữ liệu, mảng đa chiều có khả năng chứa dữ liệu không đồng nhất) và dữ liệu chuỗi thời gian trở nên dễ dàng và trực quan.
Mục tiêu chính của thư viện pandas là trở thành một khối xây dựng cơ bản và mạnh mẽ trong việc xử lý dữ liệu thực tế và phân tích dữ liệu trong Python. Điều này có nghĩa là pandas đang định hình một công cụ mạnh mẽ và linh hoạt, có tiềm năng trở thành công cụ thao tác và phân tích mã nguồn mở hàng đầu, không chỉ trong Python mà còn trong bất kỳ ngôn ngữ lập trình nào khác.
Bạn có thể truy cập và tải xuống toàn bộ mã nguồn hướng dẫn của bài học tại đây.
Thư viện pandas python là gì?
Thư viện Pandas trong Python là một thư viện mã nguồn mở mạnh mẽ, được sử dụng phổ biến để làm việc với và xử lý dữ liệu. Pandas cung cấp một loạt các công cụ và cấu trúc dữ liệu, chủ yếu là DataFrame, để thực hiện các nhiệm vụ phân tích và xử lý dữ liệu dễ dàng hơn trong Python. Thư viện này đặc biệt phù hợp cho các công việc liên quan đến khoa học dữ liệu và phân tích dữ liệu.
Tại sao bạn nên sử dụng thư viện Pandas?
- DataFrame: Pandas giới thiệu một cấu trúc dữ liệu gọi là DataFrame, giúp bạn làm việc linh hoạt và hiệu quả với dữ liệu có cấu trúc.
- Đọc/Ghi Dữ Liệu: Pandas cho phép bạn đọc và ghi dữ liệu từ/to nhiều định dạng tệp như CSV, văn bản, Excel và cơ sở dữ liệu SQL, HDF5, và nhiều định dạng khác.
- Xử Lý Dữ Liệu Thiếu: Nó cung cấp các công cụ thông minh để xử lý dữ liệu thiếu và tự động chuyển đổi dữ liệu không có cấu trúc thành dạng có cấu trúc.
- Chỉnh Sửa Cấu Trúc Dữ Liệu: Bạn có thể dễ dàng thay đổi cấu trúc của dữ liệu, thêm/xóa cột dữ liệu và thực hiện các phép biến đổi dữ liệu khác.
- Group By: Pandas cho phép bạn tổng hợp và biến đổi dữ liệu bằng cách sử dụng group by, giúp bạn thực hiện các phép toán trên các tập dữ liệu.
- Trộn và Kết Hợp: Bạn có thể kết hợp các tập dữ liệu khác nhau dựa trên các cột hoặc chỉ mục chung một cách dễ dàng.
- Chỉ Mục Dữ Liệu: Pandas cho phép bạn chỉ mục dữ liệu theo nhiều chiều, giúp bạn thực hiện các phép toán giữa dữ liệu có nhiều chiều và dữ liệu có ít chiều.
- Hiệu Năng: Thư viện Pandas được tối ưu hóa về hiệu năng cho việc làm việc với dữ liệu lớn.
Pandas được sử dụng rộng rãi trong cả nghiên cứu và ứng dụng thương mại, bao gồm lĩnh vực thống kê, tài chính, phân tích dữ liệu, và quảng cáo.
Để cài đặt thư viện Pandas, bạn có thể thực hiện theo hướng dẫn cài đặt được cung cấp trong tài liệu hướng dẫn.
- Ѕử dụᥒg pippip install pandas
- Ѕử dụᥒg condaconda install pandas
Ƅây ɡiờ ϲhúng tɑ ѕẽ ƅắt đầս Һọc cácҺ ѕử dụᥒg tҺư viện pandas python. Nhưᥒg trướϲ khᎥ ƅắt đầս, Һãy import tҺư viện pandas nҺé. Chúnɡ tɑ ѕẽ dùᥒg cἀ tҺư viện matplotlib ᥒữa.
Nếս bạᥒ cҺưa ƅiết ∨ề tҺư viện matplotlib, Һãy đọϲ bài viết này trướϲ nҺé.
# Render our plots inline %matplotlib inline import pandas as pd import matplotlib.pyplot as plt import random
Đọϲ file csv ѕử dụᥒg tҺư viện pandas
Để đọc một tệp CSV bằng thư viện Pandas trong Python, bạn có thể sử dụng hàm pandas.read_csv()
. Dưới đây là một ví dụ cơ bản về cách đọc một tệp CSV và biểu diễn nó dưới dạng DataFrame:
import pandas as pd
# Đọc tệp CSV và lưu nó vào một DataFrame
df = pd.read_csv('ten_file.csv')
# In ra năm dòng đầu tiên của DataFrame (mặc định là 5 dòng đầu)
print(df.head())
Trong ví dụ này:
Chúng ta bắt đầu bằng cách nhập thư viện Pandas và đặt tên cho nó là pd.
Sau đó, chúng ta sử dụng hàm pd.read_csv('ten_file.csv') để đọc tệp CSV có tên 'ten_file.csv'. Bạn cần thay thế 'ten_file.csv' bằng tên thực sự của tệp CSV bạn muốn đọc.
Dữ liệu từ tệp CSV sẽ được đọc và lưu vào một DataFrame có tên là df.
Cuối cùng, chúng ta sử dụng .head() để in ra năm dòng đầu tiên của DataFrame để kiểm tra dữ liệu đã được đọc chính xác.
Nếu bạn muốn chỉ định một số tham số tùy chọn khi đọc tệp CSV, bạn có thể truyền chúng vào hàm read_csv(). Ví dụ:
# Đọc tệp CSV với các tham số tùy chọn
df = pd.read_csv('ten_file.csv', delimiter=';', header=0)
Trong ví dụ này, delimiter=';'
xác định rằng dấu chấm phẩy (;) được sử dụng làm ký tự phân cách trong tệp CSV, và header=0
cho biết hàng đầu tiên của tệp CSV chứa các tên cột. Hãy thay đổi các tham số tùy chọn này tùy theo định dạng cụ thể của tệp CSV bạn đang làm việc.
Thao tác với dataframe trong pandas
Thao tác với DataFrame trong Pandas là một phần quan trọng của việc xử lý và phân tích dữ liệu. Dưới đây là một số thao tác phổ biến với DataFrame trong Pandas:
- Xem và Hiển thị Dữ liệu:
df.head(n)
: Hiển thị n dòng đầu tiên của DataFrame.df.tail(n)
: Hiển thị n dòng cuối cùng của DataFrame.
- Truy xuất Dữ liệu:
- Truy xuất cột theo tên:
df['ten_cot']
hoặcdf.ten_cot
. - Truy xuất nhiều cột:
df[['cot1', 'cot2']]
. - Truy xuất dòng theo chỉ số:
df.loc[index]
. - Truy xuất dòng theo vị trí:
df.iloc[position]
.
- Truy xuất cột theo tên:
- Lọc và Chọn Dữ liệu:
- Sử dụng điều kiện:
df[df['cot'] > gia_tri]
. - Sử dụng
.loc
hoặc.iloc
cho lọc dựa trên chỉ số hàng và cột.
- Sử dụng điều kiện:
- Thêm và Xóa Cột hoặc Dòng:
- Thêm cột mới:
df['ten_cot_moi'] = gia_tri_moi
. - Xóa cột:
df.drop('ten_cot', axis=1, inplace=True)
. - Xóa dòng:
df.drop(index, inplace=True)
.
- Thêm cột mới:
- Sắp xếp Dữ liệu:
- Sắp xếp theo giá trị của một cột:
df.sort_values('cot')
. - Sắp xếp theo giá trị và chỉ định thứ tự:
df.sort_values('cot', ascending=False)
.
- Sắp xếp theo giá trị của một cột:
- Tính toán Thống kê:
- Tính mean, sum, max, min:
df['cot'].mean()
,df['cot'].sum()
, … - Tính toán thống kê mô tả:
df.describe()
.
- Tính mean, sum, max, min:
- Tạo Thống kê:
- Groupby:
df.groupby('cot').mean()
. - Pivot Table:
pd.pivot_table(df, values='cot', index='cot_chot', columns='cot_phu')
.
- Groupby:
- Ghi Dữ liệu vào Tệp:
- Lưu DataFrame vào tệp CSV:
df.to_csv('ten_file.csv', index=False)
. - Lưu DataFrame vào tệp Excel:
df.to_excel('ten_file.xlsx', index=False)
.
- Lưu DataFrame vào tệp CSV:
- Thao tác với Dữ liệu Thời gian:
- Chuyển đổi kiểu dữ liệu ngày tháng:
df['cot_ngay'] = pd.to_datetime(df['cot_ngay'])
. - Trích xuất thông tin thời gian:
df['cot_ngay'].dt.year
,df['cot_ngay'].dt.month
, …
- Chuyển đổi kiểu dữ liệu ngày tháng:
- Trực quan hóa Dữ liệu:
- Sử dụng thư viện như Matplotlib hoặc Seaborn để vẽ biểu đồ từ DataFrame.
Đây là một số thao tác cơ bản, và Pandas cung cấp nhiều tính năng mạnh mẽ khác để làm việc với dữ liệu. Việc sử dụng Pandas cần phụ thuộc vào nhiệm vụ cụ thể và yêu cầu của bạn.
Hiểu dữ liệu trong dataframe
Để hiểu dữ liệu trong một DataFrame của Pandas, bạn cần thực hiện một số thao tác để khám phá và kiểm tra thông tin cơ bản về dữ liệu của mình. Dưới đây là một số phương pháp để hiểu dữ liệu trong DataFrame:
Xem Dữ liệu Đầu Tiên và Cuối Cùng: Sử dụng df.head()
để xem một số dòng đầu tiên của DataFrame và df.tail()
để xem một số dòng cuối cùng. Điều này giúp bạn có cái nhìn tổng quan về dữ liệu.
df.head()
df.tail()
Kiểm tra Kích Thước DataFrame: Dùng df.shape
để biết số dòng và số cột trong DataFrame.
df.shape
Kiểm tra Kiểu Dữ Liệu: Sử dụng df.dtypes
để xem kiểu dữ liệu của từng cột.
df.dtypes
Tổng hợp Thống kê Cơ bản: Sử dụng df.describe()
để xem các thống kê cơ bản của các cột số học, như trung bình, độ lệch chuẩn, giá trị lớn nhất và nhỏ nhất.
df.describe()
Kiểm tra Dữ liệu Trống: Sử dụng df.isnull()
để kiểm tra xem có giá trị trống (NaN) nào trong DataFrame hay không. df.isnull().sum()
sẽ trả về tổng số giá trị trống cho mỗi cột.
df.isnull()
df.isnull().sum()
Đếm Giá Trị Du Nhập: Sử dụng df['cot'].value_counts()
để đếm số lượng các giá trị duy nhất trong một cột cụ thể.
df['cot'].value_counts()
Tạo Biểu Đồ: Sử dụng thư viện như Matplotlib hoặc Seaborn để vẽ biểu đồ để hiểu thêm về phân phối của dữ liệu.
import matplotlib.pyplot as plt
import seaborn as sns
# Ví dụ về biểu đồ histogram cho một cột
sns.histplot(df['cot'])
plt.show()
Truy cập dữ liệu cụ thể: Bạn có thể sử dụng các phép truy cập dữ liệu như đã nêu trong câu trả lời trước để xem dữ liệu chi tiết theo cột hoặc hàng cụ thể.
Dựa trên các thông tin bạn thu thập được từ các bước trên, bạn có thể xác định các bước tiếp theo cho việc xử lý và phân tích dữ liệu của mình, bao gồm xử lý dữ liệu trống, chọn cột cần sử dụng, thực hiện tính toán thống kê, và vẽ biểu đồ để trực quan hóa dữ liệu.
Dựa trên các thông tin bạn thu thập được từ các bước trên, bạn có thể xác định các bước tiếp theo cho việc xử lý và phân tích dữ liệu của mình, bao gồm xử lý dữ liệu trống, chọn cột cần sử dụng, thực hiện tính toán thống kê, và vẽ biểu đồ để trực quan hóa dữ liệu.
Tôi ưu bộ nhớ khi dùng pandas
Để tối ưu hóa việc sử dụng bộ nhớ khi làm việc với Pandas DataFrame, bạn có thể áp dụng các biện pháp sau đây:
Chọn Kiểu Dữ Liệu Thích Hợp: Sử dụng kiểu dữ liệu phù hợp với giá trị trong cột để giảm bộ nhớ sử dụng. Pandas cung cấp nhiều kiểu dữ liệu, chẳng hạn như int
, float
, object
, và category
. Sử dụng category
cho các cột có giá trị phân loại (categorical) có thể giúp giảm bộ nhớ.
df['column_name'] = df['column_name'].astype('category')
Loại Bỏ Các Cột Không Cần Thiết: Nếu có các cột không cần thiết trong DataFrame, bạn nên loại bỏ chúng để giảm kích thước dữ liệu.
df.drop(['column_name_1', 'column_name_2'], axis=1, inplace=True)
Đọc Dữ Liệu Theo Mảng Kích Thước Nhỏ: Khi đọc dữ liệu từ các nguồn như tệp CSV, bạn có thể sử dụng tham số chunksize
để đọc dữ liệu theo các mảng kích thước nhỏ hơn. Điều này giúp tránh đọc toàn bộ dữ liệu vào bộ nhớ một lần.
chunk_size = 1000 # Số lượng dòng đọc trong mỗi lần
chunks = pd.read_csv('file.csv', chunksize=chunk_size)
for chunk in chunks:
# Xử lý từng mảng dữ liệu tại đây
Sử Dụng HDF5 cho Lưu Trữ Dữ Liệu Lớn: Nếu bạn làm việc với các bộ dữ liệu lớn, sử dụng định dạng HDF5 có thể giúp tiết kiệm bộ nhớ và tăng hiệu năng trong việc đọc và ghi dữ liệu.
# Ghi DataFrame vào tệp HDF5
df.to_hdf('data.h5', key='df', mode='w')
# Đọc DataFrame từ tệp HDF5
df = pd.read_hdf('data.h5', key='df')
Xóa Dữ Liệu Không Cần Thiết: Sau khi hoàn thành công việc xử lý dữ liệu, hãy xóa các biến hoặc DataFrame mà bạn không còn cần sử dụng để giải phóng bộ nhớ.
del df
Sử Dụng .copy()
Khi Cần: Khi bạn cần sao chép một DataFrame để thực hiện các thay đổi mà không ảnh hưởng đến DataFrame gốc, hãy sử dụng .copy()
. Điều này tránh sự thay đổi không mong muốn đối với DataFrame gốc.
Sử Dụng .copy() Khi Cần: Khi bạn cần sao chép một DataFrame để thực hiện các thay đổi mà không ảnh hưởng đến DataFrame gốc, hãy sử dụng .copy(). Điều này tránh sự thay đổi không mong muốn đối với DataFrame gốc.
Nhớ kiểm tra kích thước bộ nhớ trước và sau khi thực hiện các biện pháp tối ưu hóa để đảm bảo hiệu suất và quản lý bộ nhớ tốt hơn khi làm việc với dữ liệu trong Pandas.
TàᎥ liệս tham khả᧐
Để lại một bình luận