Cách thao tác, trích xuất, và biến đổi dữ liệu trong python

Ngày đăng: 21/11/2023   -    Cập nhật: 21/11/2023

Từ việc đọc và ghi tệp, trích xuất và biến đổi dữ liệu, cho đến việc phân tích và trực quan hóa dữ liệu, Python cung cấp nhiều công cụ và thư viện hữu ích để đơn giản hóa các nhiệm vụ phức tạp liên quan đến dữ liệu.

Cách thao tác cơ bản với Python

Python hỗ trợ các kiểu dữ liệu cơ bản như số, chuỗi, danh sách, tuple, từ điển,... cho phép bạn dễ dàng tạo, thay đổi và thao tác với các biến của các kiểu dữ liệu này. Ví dụ:


a = 10 

# số nguyên 

b = "Hello World" 

# chuỗi

c = [1, 2, 3] 

# danh sách

d = (4, 5, 6) 

# tuple 

e =  

# từ điển


Python thực hiện các phép toán cơ bản, các phép so sánh, các hàm dựng sẵn để xử lý dữ liệu. Ví dụ:


a = 4 + 6 

# phép cộng 

b = 10 > 5 

# phép so sánh lớn hơn

print(max(4, 6)) 

# hàm tìm giá trị lớn nhất

Hướng dẫn trích xuất dữ liệu từ tệp trong Python


 

Để trích xuất dữ liệu từ các tệp, ta sử dụng các hàm open(), read(), write() trong Python.


Để đọc dữ liệu từ tệp, ta mở tệp ở chế độ đọc bằng hàm open() và sử dụng hàm read() để đọc nội dung tệp.


file = open("data.txt", "r")

contents = file.read()


Để ghi dữ liệu vào tệp, ta mở tệp ở chế độ ghi bằng hàm open() và sử dụng hàm write() để ghi nội dung vào tệp.


file = open("data.txt", "w") 

file.write("Hello World")


Ngoài ra, ta có thể sử dụng vòng lặp để đọc từng dòng trong tệp bằng hàm readline() hoặc duyệt toàn bộ tệp dưới dạng danh sách các dòng bằng hàm readlines().


lines = []

with open("data.txt", "r") as file:

  line = file.readline()

  while line:

    lines.append(line)

    line = file.readline()


Như vậy, với các hàm open(), read(), write() cùng các vòng lặp, ta có thể dễ dàng trích xuất và xử lý dữ liệu từ các tệp trong Python.

Cách sử dụng các hàm để biến đổi dữ liệu trong Python

Python hỗ trợ nhiều hàm xây dựng sẵn để biến đổi và xử lý dữ liệu như chuỗi, số, ngày tháng,... một số hàm thường dùng:


  • str(): chuyển đổi về chuỗi
  • int(): chuyển đổi về số nguyên
  • float(): chuyển đổi về số thực
  • len(): trả về độ dài của chuỗi hoặc danh sách
  • abs(): trả về giá trị tuyệt đối của số
  • round(): làm tròn số
  • max(), min(): tìm giá trị lớn nhất, nhỏ nhất
  • split(): tách chuỗi thành danh sách
  • join(): nối các phần tử trong danh sách thành chuỗi

Ví dụ:


number = "123"

print(int(number)) # 123


values = [1, 2, 3]  

print(len(values)) # 3


print(abs(-5)) # 5 


print(max(4, 6, 2)) # 6


text = "hello"

print(text.split()) # ['hello']


Các hàm này giúp chúng ta dễ dàng biến đổi các kiểu dữ liệu và xử lý chúng theo nhu cầu.

Cách sử dụng numpy để thao tác và biến đổi dữ liệu trong Python

Numpy là thư viện xử lý dữ liệu và tính toán khoa học phổ biến trong Python. Numpy cung cấp kiểu dữ liệu mảng (array) và nhiều hàm để thao tác hiệu quả với mảng:


  • Tạo mảng với các phần tử ban đầu.
  • Trích xuất các phần tử, cắt mảng.
  • Thao tác toán học trên mảng như cộng, trừ, nhân ma trận.
  • Thống kê mô tả dữ liệu trong mảng như trung bình, phương sai.
  • Biến đổi dữ liệu gồm reshape, sort, concatenate,...

Ví dụ một số thao tác cơ bản với Numpy:


import numpy as np


a = np.array([1, 2, 3]) # Tạo mảng 


b = a * 2 # Nhân mảng với số 


mean = a.mean() # Trung bình cộng


c = np.concatenate([a, b]) # Nối hai mảng


Như vậy, Numpy cung cấp các cấu trúc dữ liệu và tính toán hiệu năng cao để thao tác dữ liệu.

Hướng dẫn cách đọc và ghi tệp CSV trong Python


 

Tệp CSV (comma separated values) là một định dạng lưu trữ dữ liệu phổ biến. CSV cho phép lưu dữ liệu dạng bảng dưới dạng văn bản, mỗi dòng tách các giá trị bằng dấu phẩy hoặc ký tự phân cách khác.


Để đọc tệp CSV trong Python, ta sử dụng thư viện csv như sau:


import csv


with open('data.csv') as file:

  reader = csv.reader(file)

  for row in reader:

    print(row) 


Để ghi dữ liệu vào tệp CSV:


import csv


data = [[1, 2, 3], [4, 5, 6]]


with open('data.csv', 'w') as file:

  writer = csv.writer(file)

  writer.writerows(data)


Pandas cũng hỗ trợ đọc và ghi CSV thuận tiện hơn với hàm read_csv() và to_csv().


Như vậy, Python cung cấp cách đơn giản để tương tác với tệp dữ liệu phổ biến CSV.

Cách sử dụng pandas để biến đổi và phân tích dữ liệu trong Python

Pandas là thư viện phân tích dữ liệu nổi tiếng của Python. Pandas cung cấp cấu trúc dữ liệu DataFrame để lưu trữ và thao tác dữ liệu dạng bảng. Pandas hỗ trợ nhiều phương thức để biến đổi và phân tích dữ liệu:


  • Đọc dữ liệu từ các định dạng CSV, Excel, SQL.
  • Trích xuất và lọc dữ liệu dựa trên điều kiện.
  • Xử lý dữ liệu bị thiếu.
  • Nối ghép các DataFrame.
  • Tính toán thống kê mô tả như trung bình, tổng, đếm,...
  • Phân nhóm và tổng hợp dữ liệu dựa trên nhóm.
  • Biến đổi dữ liệu như chuẩn hóa, đổi tên cột, xử lý ngày tháng.

Ví dụ đọc và xử lý dữ liệu với Pandas:


import pandas as pd


df = pd.read_csv('data.csv') 


df['Sales'].mean() # Trung bình cột Sales


df_new = df[df['Sales'] > 1000] # Lọc dữ liệu


df_grouped = df.groupby('Category').sum() # Nhóm và tổng hợp 


Như vậy Pandas rất mạnh mẽ trong việc xử lý và phân tích dữ liệu.

Các kỹ thuật trích xuất thông tin từ văn bản bằng Python


Python hỗ trợ nhiều thư viện để xử lý ngôn ngữ tự nhiên và trích xuất thông tin từ văn bản như:


  • Regular expressions (regex): Tìm kiếm và trích xuất các pattern như số điện thoại, email
  • SpaCy: Phân tích cú pháp, trích xuất thực thể con người, tổ chức, sự kiện,...
  • NLTK: Xử lý ngôn ngữ tự nhiên, phân loại văn bản, tóm tắt văn bản
  • Gensim: Xử lý corpus lớn, phân tích topic modeling
  • BeatifulSoup: Trích xuất dữ liệu từ HTML, XML
  • TextBlob: Phân tích cảm xúc văn bản

Ví dụ trích xuất email bằng regex:


import re


text = "Contact me at email example@gmail.com"


emails = re.findall(r'[\w\.-]+@[\w\.-]+', text) 


print(emails) # ['example@gmail.com']


Như vậy Python cung cấp nhiều thư viện mạnh mẽ để trích xuất thông tin từ văn bản.

Cách thực hiện chuyển đổi dữ liệu giữa các định dạng trong Python

Một số cách phổ biến để chuyển đổi dữ liệu giữa các định dạng trong Python:


  • Sử dụng các module csv, json, xml để đọc và ghi dữ liệu với các định dạng tương ứng.
  • Dùng Pandans để chuyển đổi giữa csv, excel, sql, json,... thông qua các hàm read_csv(), to_excel(), to_sql(),...
  • Sử dụng openpyxl để đọc ghi dữ liệu excel.

Cách sử dụng matplotlib để trực quan hóa dữ liệu trong Python.

Matplotlib là thư viện vẽ đồ thị phổ biến trong Python. Matplotlib cung cấp nhiều loại đồ thị như đường, cột, rải rác, tròn,... giúp trực quan hóa dữ liệu.


Ví dụ vẽ đồ thị đường:


import matplotlib.pyplot as plt


x = [1, 2, 3, 4] 

y = [2, 4, 6, 8]


plt.plot(x, y)

plt.title("Line Chart")

plt.xlabel("X axis")  

plt.ylabel("Y axis")

plt.show()


Ví dụ vẽ biểu đồ cột:


import matplotlib.pyplot as plt


labels = ['A', 'B', 'C']

values = [10, 30, 20]


plt.bar(labels, values)

plt.title("Bar Chart")

plt.show()


Như vậy, matplotlib giúp ta dễ dàng trực quan hóa dữ liệu để phân tích và hiểu rõ hơn.

Cách sử dụng regex để trích xuất dữ liệu trong Python

Regex (Regular expressions) là các mẫu biểu thức chính quy cho phép tìm kiếm, trích xuất dữ liệu dựa trên các pattern.


Python hỗ trợ thư viện regex để xử lý regex. Các bước sử dụng regex:


Import thư viện regex


import re


Xác định pattern cần tìm

Dùng hàm re.findall() để tìm tất cả các kết quả phù hợp:


pattern = r'[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]'  

emails = re.findall(pattern, text)


Dùng re.search() để tìm kết quả đầu tiên phù hợp

re.match() tìm ở đầu chuỗi


Regex rất mạnh mẽ để tìm kiếm và trích xuất dữ liệu dựa trên pattern như số điện thoại, email, url,...## Cách sử dụng regex để trích xuất dữ liệu trong Python


Regex (Biểu thức chính quy) là một mẫu biểu thức cho phép tìm kiếm, trích xuất và thay thế các ký tự hoặc chuỗi dựa trên các pattern đã xác định. Trong Python, ta có thể sử dụng thư viện regex để xử lý việc này.


Để sử dụng regex trong Python, ta cần import thư viện re bằng cú pháp:


import re


Sau khi đã import thành công thư viện re, ta cần xác định pattern cần tìm.


Một ví dụ về pattern phổ biến trong regex là tìm tất cả các email trong một đoạn văn bản. Ta có thể viết pattern như sau:


pattern = r'[azAZ09_.+]+@[azAZ09]+\.[azAZ09.]'


Sau khi đã có pattern, ta có thể sử dụng hàm re.findall() để tìm tất cả các kết quả phù hợp với pattern trong đoạn văn bản:


emails = re.findall(pattern, text)


Ngoài ra, ta cũng có thể sử dụng hàm re.search() để tìm kết quả đầu tiên phù hợp hoặc hàm re.match() để tìm kết quả ở đầu chuỗi.


Regex là một công cụ rất mạnh mẽ để tìm kiếm và trích xuất dữ liệu theo các pattern như số điện thoại, email, url,.. và được sử dụng phổ biến trong nhiều lĩnh vực khác nhau.


Kết luận: trong bài viết này, chúng ta đã tìm hiểu về cách sử dụng regex để trích xuất dữ liệu trong Python. Sử dụng regex giúp cho việc tìm kiếm và trích xuất dữ liệu trở nên nhanh chóng và hiệu quả hơn nhiều. 

 
Bình luận Facebook
Khóa học liên quan đến bài viết

KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS

56 giờ
Học Lập trình Front end hiện đại với ReactJS. Học làm chủ HTML, CSS, JS và thư viện JavaScript phổ biến nhất hiện nay. Sẵn sàng đi thực tập / đi làm ngay sau khóa học.

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

Khóa học BIG DATA với Hadoop và Spark

56 giờ
NIIT - ICT Hà Nội cung cấp khóa học BIG DATA nhằm đáp ứng nhu cầu phân tích dữ liệu lớn, phức tạp, tăng cao hiệu suất xử lý. Tùy biến linh hoạt theo nhu cầu.

KHÓA HỌC LẬP TRÌNH PHP WEB

54 giờ
NIIT - ICT Hà Nội cung cấp Khóa học Lập trình Web Fullstack với PHP, phiên bản cập nhật lần thứ 5 (T8/2019). Dạy Lập trình PHP bài bản, chi tiết (từ Front-end đến Back-end)

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!