<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 資料讀取
tar 讀取
Step1:  利用 pandas 來處理資料
Step2:  csv 欄位依照手冊設定
<a href="http
Step3:  查看一下內容
<ASSISTANT_TASK:>
Python Code:
import tarfile
# 檔案名稱格式
filename_format="M06A_{year:04d}{month:02d}{day:02d}.tar.gz".format
xz_filename_format="xz/M06A_{year:04d}{month:02d}{day:02d}.tar.xz".format
csv_format = "M06A/{year:04d}{month:02d}{day:02d}/{hour:02d}/TDCS_M06A_{year:04d}{month:02d}{day:02d}_{hour:02d}0000.csv".format
# 打開剛才下載的檔案試試
data_config ={"year":2016, "month":12, "day":18}
tar = tarfile.open(filename_format(**data_config), 'r')
# 如果沒有下載，可以試試看 xz 檔案
#data_dconfig ={"year":2016, "month":11, "day":18}
#tar = tarfile.open(xz_filename_format(**data_config), 'r')
# 列出內容
tar.list()
# 打開裡面 10 點鐘的資料
csv = tar.extractfile(csv_format(hour=10, **data_config))
# 類似檔案的物件
csv
# 印出前十行來看看
for i in range(10):
    print(csv.readline().decode())
Explanation: 資料讀取
tar 讀取
End of explanation
import pandas
Explanation: 利用 pandas 來處理資料
End of explanation
# 設定欄位名稱
M06A_fields = ['VehicleType',
               'DetectionTime_O','GantryID_O',
               'DetectionTime_D','GantryID_D ',
               'TripLength', 'TripEnd', 'TripInformation']
# 打開裡面 10 點鐘的資料
csv = tar.extractfile(csv_format(hour=10, **data_config))
# 讀進資料
data = pandas.read_csv(csv, names=M06A_fields)
data
# 先檢查一下有沒有異常的資料
data[data.TripEnd == 'N'].shape
# 先去除異常資料
data = data[data.TripEnd == 'Y']
# 然後乾脆刪掉 TripEnd 這欄
del data['TripEnd']
# 也可以用 data.drop('TripEnd', axis=1, inplace=True)
Explanation: csv 欄位依照手冊設定
<a href="http://www.freeway.gov.tw/UserFiles/File/TIMCCC/TDCS%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8A(tanfb)v3.0-1.pdf">國道高速公路電子收費交通資料蒐集支援系統(Traffic Data Collection System,TDCS)使用手冊</a>
VehicleType： 車種 31(小客車) 、32(小貨車) 、41(大客車) 、42(大貨車) 、5(聯結車)
DetectionTime_O：車輛通過本旅次第 1 個偵測站時間
GantryID_O： 車輛通過本旅次第 1 個偵測站編號
DetectionTime_D： 車輛通過本旅次最後 1 個偵測站時間
GantryID_D： 車輛通過本旅次最後 1 個偵測站編號
TripLength：本旅次之行駛距離
TripEnd：旅次結標記 (Y：旅次正常結束，N：異常)
TripInformation： 本旅次經過的各個偵測站之通過時間及偵測站編號
End of explanation
# 前 5 筆
# 或 data.iloc[:5]
data.head(5)
# 第  12 筆
data.iloc[11]
# 對我們來說，其實重要的只有 TripInformation 和 VehicleType
# 先只注意這兩項
data = data[['VehicleType', "TripInformation"]]
data.head(5)
# 查看看小貨車資料
data.query('VehicleType==32')
# 或者查看看小客車資料
data[data.VehicleType==31]
Explanation: 查看一下內容
End of explanation
<END_TASK>