Trong thời đại IoT, hàng triệu cảm biến được triển khai để giám sát môi trường, nhà thông minh, và sản xuất công nghiệp. Các cảm biến này liên tục ghi nhận dữ liệu về nhiệt độ, độ ẩm, áp suất và ánh sáng – tạo ra khối lượng dữ liệu lớn cần xử lý hiệu quả. Việc khai thác dữ liệu này bằng Pandas giúp biến những con số rời rạc thành thông tin giá trị để đưa ra quyết định.
Nếu bạn đã quen với việc xử lý dữ liệu cho phát hiện tiếng nói bất thường bằng AI hay nhận diện biển báo giao thông, thì bước tiếp theo là học cách thao tác dữ liệu cảm biến IoT – nơi Pandas phát huy tối đa sức mạnh.
Tập dữ liệu sử dụng
Dataset Temperature, Humidity, Pressure, Illuminance thu thập dữ liệu môi trường với các cột: time, temperature, humidity, pressure, lux. Đây là một nguồn dữ liệu tuyệt vời để thực hành xử lý chuỗi thời gian (time series).
📥 Link tải dataset: Temperature Humidity Pressure Illuminance Dataset – Kaggle
Nạp dữ liệu và khám phá ban đầu
Bước đầu tiên là nạp dữ liệu từ file CSV và kiểm tra cấu trúc. Điều này giúp bạn xác định định dạng thời gian (time), kiểm tra dữ liệu thiếu, và hiểu rõ các trường số liệu. Với dữ liệu IoT, việc kiểm tra này càng quan trọng để đảm bảo tính toàn vẹn của chuỗi thời gian.
Pandas cung cấp các hàm như read_csv(), info() và describe() để giúp bạn nhanh chóng có cái nhìn tổng quan về dữ liệu.
import pandas as pd
# Đọc dữ liệu từ file CSV
df = pd.read_csv('temperature_humidity_pressure_illuminance.csv', parse_dates=['time'])
# Xem 5 dòng đầu tiên
print(df.head())
# Thông tin tổng quan
print(df.info())
# Thống kê mô tả các cột số liệu
print(df.describe())
Xử lý dữ liệu thời gian
Dữ liệu IoT có đặc thù là liên quan mạnh đến thời gian. Chúng ta cần chuyển time thành kiểu dữ liệu datetime và đặt làm chỉ số (index). Điều này cho phép thực hiện các thao tác như resample (gộp dữ liệu theo phút, giờ, ngày) và tìm khoảng trống trong chuỗi thời gian.
Xử lý dữ liệu thời gian giúp bạn chuẩn bị cho các bước trực quan hóa và phân tích xu hướng.
# Đặt cột time làm index
df.set_index('time', inplace=True)
# Sắp xếp theo thời gian
df.sort_index(inplace=True)
# Kiểm tra giá trị thiếu
print(df.isnull().sum())
Làm sạch và chuẩn hóa dữ liệu
Dữ liệu từ cảm biến IoT thường có lỗi hoặc giá trị bị thiếu do mất kết nối hoặc lỗi phần cứng. Pandas hỗ trợ điền giá trị thiếu bằng các phương pháp như nội suy tuyến tính. Ngoài ra, chuẩn hóa dữ liệu về cùng thang đo (ví dụ [0,1]) giúp bạn dễ dàng so sánh các cảm biến với đơn vị khác nhau.
Bước này đặc biệt quan trọng nếu sau này bạn sử dụng dữ liệu để huấn luyện mô hình AI.
# Điền giá trị thiếu bằng nội suy df.interpolate(method='time', inplace=True) # Chuẩn hóa dữ liệu from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() scaled_values = scaler.fit_transform(df) df_scaled = pd.DataFrame(scaled_values, columns=df.columns, index=df.index) print(df_scaled.head())
Trực quan hóa dữ liệu cảm biến
Trực quan hóa giúp bạn hiểu rõ hơn về xu hướng và mối quan hệ giữa các cảm biến. Biểu đồ đường (line plot) là lựa chọn lý tưởng để quan sát biến động theo thời gian. Heatmap giúp bạn nhận biết mối tương quan giữa nhiệt độ, độ ẩm, áp suất và độ sáng.
Các biểu đồ này cũng hữu ích để phát hiện các điểm bất thường (anomalies) trong dữ liệu.
import matplotlib.pyplot as plt
import seaborn as sns
# Vẽ biểu đồ nhiệt độ theo thời gian
plt.figure(figsize=(14,6))
df_scaled['temperature'].plot(label='Temperature')
plt.title('Nhiệt độ theo thời gian (chuẩn hóa)')
plt.xlabel('Thời gian')
plt.ylabel('Giá trị chuẩn hóa')
plt.legend()
plt.show()
# Heatmap tương quan giữa các cảm biến
plt.figure(figsize=(8,6))
sns.heatmap(df_scaled.corr(), annot=True, cmap='coolwarm')
plt.title('Tương quan giữa các cảm biến')
plt.show()
Kết luận
Bạn vừa học cách xử lý dữ liệu từ cảm biến IoT bằng Pandas: từ nạp file CSV, xử lý dữ liệu thời gian, làm sạch và chuẩn hóa đến trực quan hóa dữ liệu. Đây là nền tảng quan trọng cho các bước tiếp theo như phát hiện bất thường, dự báo hoặc xây dựng dashboard giám sát IoT theo thời gian thực.
Bạn có thể mở rộng bằng cách kết hợp dữ liệu này với dữ liệu thời tiết để phân tích sâu hơn, hoặc áp dụng học máy để dự đoán tình trạng môi trường.

