Python機器學習筆記(二):使用Pandas清理資料,搭配WEKA進行分析

以PM2.5數據為例

文字流程

1.先至環境資源資料庫下載回CSV檔

2.用EXCEL打開,將不需要分析的類別刪除,並將類別改成英文字顯示

3.使用Pandas檢查資料,處理缺失值和空白值(若有缺失值
Weka會無法讀取),將NaN全部改成0,保有資料完整性(20190103補充)

4.將Object屬性轉換成Float屬性

5.另存成新的CSV檔案

6.使用WEKA開啟並分析

程式

#初始環境設定
import pandas as pd
df=pd.read_csv('2014-2018.csv')pd.set_option("display.max_rows", 1000) #設定最大能顯示1000rowspd.set_option("display.max_columns", 1000) #設定最大能顯示1000columnsfrom pylab import mplmpl.rcParams['font.sans-serif'] = ['Microsoft YaHei']# 指定默認字形:解決plot不能顯示中文問題mpl.rcParams['axes.unicode_minus'] = False#檢查屬性
df.dtypes
####################
SO2 float64
CO float64
CO2 float64
O3 float64
PM25 int64
Nox float64
NO float64
NO2 float64
THC float64
NMHC float64
CH4 float64
WindSpeed float64
TEMP float64
Humidity float64
dtype: object
#屬性轉換
df["SO2"] = pd.to_numeric(df.SO2, errors='coerce')
df["CO"] = pd.to_numeric(df.CO, errors='coerce')
df["CO2"] = pd.to_numeric(df.CO2, errors='coerce')
df["O3"] = pd.to_numeric(df.O3, errors='coerce')
df["PM25"] = pd.to_numeric(df.PM25, errors='coerce')
df["Nox"] = pd.to_numeric(df.Nox, errors='coerce')
df["NO"] = pd.to_numeric(df.NO, errors='coerce')
df["NO2"] = pd.to_numeric(df.NO2, errors='coerce')
df["THC"] = pd.to_numeric(df.THC, errors='coerce')
df["NMHC"] = pd.to_numeric(df.NMHC, errors='coerce')
df["CH4"] = pd.to_numeric(df.CH4, errors='coerce')
df["WindSpeed"] = pd.to_numeric(df.WindSpeed, errors='coerce')
df["TEMP"] = pd.to_numeric(df.TEMP, errors='coerce')
df["Humidity"] = pd.to_numeric(df.Humidity, errors='coerce')
#處理缺失值
df=df.fillna(0)
#檢查屬性是否已經改變
df.dtypes
####################
SO2 float64
CO float64
CO2 float64
O3 float64
PM25 int64
Nox float64
NO float64
NO2 float64
THC float64
NMHC float64
CH4 float64
WindSpeed float64
TEMP float64
Humidity float64
dtype: object
#存檔至新的CSV
df.to_csv('2014-2018.csv',encoding='utf8')
#使用Excel開啟該CSV檔案
#刪除多餘欄位,將儲存格左移
#使用WEKA開啟資料,並且選擇分類器進行分析

Written by

Machine Learning / Deep Learning / Python / Flutter cakeresume.com/yanwei-liu

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store