iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
0
AI & Data

實實在在地學習人工智慧-基礎理論探討與經典案例實作系列 第 13

【Day 13】開始寫程式拉!第三站:重要函式庫-Pandas (2/2)

  • 分享至 

  • xImage
  •  

昨天介紹了Pandas的兩個重要的資料型態,昨天有提到Pandas可以處理許多類型的資料檔案,如csv、excel、json、html等等,而今天會著重在Pandas應用於處理csv檔案的練習哦!
今天的分享會偏向實作案例前的資料處理哦!那就讓我們繼續學下去吧!

JOHN國房價資料下載

Pandas應用於CSV檔

介紹CSV檔案

CSV全名是Comma-Separated Values,中文直接翻譯是逗號分隔值,也有人稱作字元分隔值(因為字元分隔不是用逗號),而檔案是以純文字形式去儲存表個資料,也就是純文字檔,通常是由Excel轉出的資料檔。

讀取CSV檔

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

提取數值建立dataset

這邊要特地將表格內的數值取出,也就是我不要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,敬請期待囉!


上一篇
【Day 12】開始寫程式拉!第三站:重要函式庫-Pandas (1/2)
下一篇
【Day 14】開始寫程式拉!第三站:重要函式庫-Tensorflow(1/2)
系列文
實實在在地學習人工智慧-基礎理論探討與經典案例實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言