Site icon Bệ Phóng Việt

Chinh phục Pandas: Tối ưu hiệu suất

Advertisements

Pandas là một thư viện mã nguồn mở được viết bằng ngôn ngữ lập trình Python, dùng để phân tích và xử lý dữ liệu mạnh mẽ. Nó cung cấp nhiều công cụ cho việc tạo, quản lý và sử dụng các đối tượng dữ liệu như DataFrame và Series. Pandas được sử dụng rộng rãi trong nhiều lĩnh vực như khoa học dữ liệu, tài chính và thống kê. Bài viết đề cập đến vectorized operations, cách tốt nhất để tăng tốc độ xử lý dữ liệu trong Pandas. Ngoài ra, nó cũng giới thiệu cách sử dụng apply và map để tối ưu hiệu suất và tránh sử dụng vòng lặp for, điều này giúp tăng tốc độ xử lý dữ liệu của bạn.

Phần 2: Tạo DataFrame

Một trong những công cụ mạnh mẽ của Pandas là DataFrame, nó được sử dụng phổ biến để lưu trữ và xử lý dữ liệu. DataFrame có thể được coi như một bảng hai chiều với hàng và cột.

Để tạo một DataFrame, chúng ta có thể sử dụng các phương thức như pd.DataFrame hoặc pd.read_csv.

Ví dụ:

import pandas as pd
df = pd.DataFrame({'name': ['John', 'Mary', 'Peter'], 'age': [25, 30, 35]})
print(df)

Output:

  name age
0 John 25
1 Mary 30
2 Peter 35

Phần 3: Vectorized operations trong Pandas

Vectorized operations là cách tốt nhất để tăng tốc độ xử lý dữ liệu trong Pandas. Nó cho phép chúng ta thực hiện các thao tác trên toàn bộ cột hoặc hàng của DataFrame cùng một lúc thay vì thực hiện thao tác trên từng phần tử riêng lẻ của DataFrame.

Các phép toán vectorized sử dụng numpy arrays để thực hiện các phép toán với tốc độ cao hơn.

Ví dụ:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df['C'] = np.sqrt(df['A']**2 + df['B']**2)
print(df)

Output:

  A B C
0 1 4 4.123106
1 2 5 5.385165
2 3 6 6.708204

Phần 4: Sử dụng apply và map để tối ưu hiệu suất

Sử dụng apply và map là cách tốt để tối ưu hiệu suất của Pandas, thay vì sử dụng vòng lặp for.

apply: Áp dụng hàm cho hàng hoặc cột trong DataFrame.

map: Áp dụng hàm cho mỗi phần tử riêng lẻ trong DataFrame.

Ví dụ:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df['C'] = df['A'].apply(lambda x: x**2)
df['D'] = df['B'].map(lambda x: x**2)
print(df)

Output:

  A B C D
0 1 4 1 16
1 2 5 4 25
2 3 6 9 36

Để tối ưu hiệu suất của Pandas, chúng ta cần phải sử dụng vectorized operations và apply và map functions. Chúng ta cần tránh sử dụng vòng lặp for bởi vì nó sẽ làm chậm tốc độ xử lý dữ liệu của mình.

Học bài tiếp theo: Xử lý dữ liệu lớn với Pandas

Bài trước: Trực quan hóa dữ liệu với Python Pandas

Quay về trang chủ của khoá học: Python Pandas – Thao tác và phân tích dữ liệu

Exit mobile version