Làm sạch dữ liệu

Phân tích dữ liệu IoT bằng Python

Matthias Voppichler

IT Developer

Thiếu dữ liệu

Nguyên nhân thiếu dữ liệu từ thiết bị IoT

  • Kết nối mạng không ổn định
  • Mất điện
  • Yếu tố bên ngoài khác

Thời điểm xử lý chất lượng dữ liệu

  • Khi thu thập dữ liệu
  • Khi phân tích
Phân tích dữ liệu IoT bằng Python

Xử lý dữ liệu thiếu

Cách xử lý dữ liệu thiếu

  • điền
    • mean
    • median
    • forward-fill
    • backward-fill
  • loại bỏ
  • dừng phân tích
Phân tích dữ liệu IoT bằng Python

Phát hiện giá trị thiếu

df.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 12 entries, 2018-10-15 08:00:00 to 2018-10-15 08:55:00
Data columns (total 3 columns):
temperature      8 non-null float64
humidity         8 non-null float64
precipitation    12 non-null float64
dtypes: float64(3)
memory usage: 384.0 bytes
Phân tích dữ liệu IoT bằng Python

Loại bỏ giá trị thiếu

print(df.head())
                     temperature  humidity  precipitation
timestamp                                                
2018-10-15 08:00:00         16.7      64.2            0.0
2018-10-15 08:05:00         16.6       NaN            0.0
2018-10-15 08:10:00         16.5      65.3            0.0
2018-10-15 08:15:00          NaN      65.0            0.0
2018-10-15 08:20:00         16.8      64.3            0.0
df.dropna()
                     temperature  humidity  precipitation
timestamp                                                
2018-10-15 08:00:00         16.7      64.2            0.0
2018-10-15 08:10:00         16.5      65.3            0.0
2018-10-15 08:20:00         16.8      64.3            0.0

Phân tích dữ liệu IoT bằng Python

Điền giá trị thiếu

df
                     temperature  humidity  precipitation
timestamp                                                
2018-10-15 08:00:00         16.7      64.2            0.0
2018-10-15 08:05:00         16.6       NaN            0.0
2018-10-15 08:10:00         17.0      65.3            0.0
2018-10-15 08:15:00          NaN      65.0            0.0
2018-10-15 08:20:00         16.8      64.3            0.0
df.fillna(method="ffill")
                     temperature  humidity  precipitation
timestamp                                                
2018-10-15 08:00:00         16.7      64.2            0.0
2018-10-15 08:05:00         16.6      64.2            0.0
2018-10-15 08:10:00         17.0      65.3            0.0
2018-10-15 08:15:00         17.0      65.0            0.0
2018-10-15 08:20:00         16.8      64.3            0.0
Phân tích dữ liệu IoT bằng Python

Đo đạc bị gián đoạn


print(df.head())
timestamp            temperature  humidity
2018-10-15 00:00:00         13.5      84.7
2018-10-15 00:10:00         13.3      85.6
2018-10-15 00:20:00         12.9      88.8
2018-10-15 00:30:00         12.8      89.2
2018-10-15 00:40:00         13.0      87.7
print(df.isna().sum())
temperature    0
humidity       0
dtype: int64
df_res = df.resample("10min").last()
print(df_res.head())
timestamp            temperature  humidity
2018-10-15 00:00:00         13.5      84.7
2018-10-15 00:10:00         13.3      85.6
2018-10-15 00:20:00         12.9      88.8
2018-10-15 00:30:00         12.8      89.2
2018-10-15 00:40:00         13.0      87.7
print(df_res.isna().sum())

temperature    34
humidity       34
dtype: int64
Phân tích dữ liệu IoT bằng Python

Đo đạc bị gián đoạn

df_res.plot(title="Environment")

Biểu đồ bị đứt đoạn do thu thập dữ liệu bị gián đoạn

Phân tích dữ liệu IoT bằng Python

Ayo berlatih!

Phân tích dữ liệu IoT bằng Python

Preparing Video For Download...