昨天介紹了Pandas的兩個重要的資料型態,昨天有提到Pandas可以處理許多類型的資料檔案,如csv、excel、json、html等等,而今天會著重在Pandas應用於處理csv檔案的練習哦!
今天的分享會偏向實作案例前的資料處理哦!那就讓我們繼續學下去吧!
CSV全名是Comma-Separated Values,中文直接翻譯是逗號分隔值,也有人稱作字元分隔值(因為字元分隔不是用逗號),而檔案是以純文字形式去儲存表個資料,也就是純文字檔,通常是由Excel轉出的資料檔。
import pandas as pd #匯入函式庫
df_train = pd.read_csv(r'C:\Users\USER\Desktop\data.csv')#讀取csv檔,引號內是檔案路徑
print(df_train)
輸出:
id price sq_ft floors bedrooms sale_month
0 1 380000 1900 2 4 8
1 2 350000 3380 1 4 9
2 3 254000 2070 2 3 1
3 4 230000 1150 1 3 2
4 5 540000 2040 1 3 6
5 6 240000 1550 1 3 5
6 7 158000 1520 2 3 4
7 8 200000 790 1 2 11
8 9 275000 1900 1 3 12
9 10 593500 4300 2 5 10
那我們在查看資料後,覺得售出月份對於定價影響不大,所以想要剃除,方法有兩個
1.正面進攻(比較簡單快速):
df_train = df_train.drop("sale_month",axis=1)
#1.指定要的行或列名稱2.axis 0是指列(橫向);1則是行(縱向)
print(df_train)
輸出:
id price sq_ft floors bedrooms
0 1 380000 1900 2 4
1 2 350000 3380 1 4
2 3 254000 2070 2 3
3 4 230000 1150 1 3
4 5 540000 2040 1 3
5 6 240000 1550 1 3
6 7 158000 1520 2 3
7 8 200000 790 1 2
8 9 275000 1900 1 3
9 10 593500 4300 2 5
2.反面進攻(比較麻煩,保留特定行數):
df_train = df_train.iloc[:,:5]
#中括號內,第一個:前後都不田表示"列"全部都要保留;行則是保留0~4
#利用.iloc把index 5的移除(保留0~4)
#又因為冒號後面填n的話,會數到n-1,我們要保留0~4,所以,要填5
輸出:
id price sq_ft floors bedrooms
0 1 380000 1900 2 4
1 2 350000 3380 1 4
2 3 254000 2070 2 3
3 4 230000 1150 1 3
4 5 540000 2040 1 3
5 6 240000 1550 1 3
6 7 158000 1520 2 3
7 8 200000 790 1 2
8 9 275000 1900 1 3
9 10 593500 4300 2 5
這邊要特地將表格內的數值取出,也就是我不要index和欄位,只要裡面的數值資料。
train_dataset = df_train.values #提取資料
print(train_dataset)
print('*'*30)
train_targets = train_dataset[:,1] #抓出price
print(train_targets)
輸出:
[[ 1 380000 1900 2 4]
[ 2 350000 3380 1 4]
[ 3 254000 2070 2 3]
[ 4 230000 1150 1 3]
[ 5 540000 2040 1 3]
[ 6 240000 1550 1 3]
[ 7 158000 1520 2 3]
[ 8 200000 790 1 2]
[ 9 275000 1900 1 3]
[ 10 593500 4300 2 5]]
******************************
[380000 350000 254000 230000 540000 240000 158000 200000 275000 593500]
比較常用到的Pandas應用於CSV檔的處理就介紹到這,明天開始會進入我們的核心套件tensorflow,敬請期待囉!