iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
AI & Data

使用python學習Machine Learning系列 第 17

Day 17 [Python ML、Pandas] 資料類型和遺失值

  • 分享至 

  • xImage
  •  
import pandas as pd
reviews = pd.read_csv("./winemag-data-130k-v2.csv", index_col=0)
pd.set_option('max_rows', 5)

Dtype

DataFrame或是Series的資料型態都是dtype

reviews.price.dtype
dtype('float64')
reviews.dtypes
country        object
description    object
                ...  
variety        object
winery         object
Length: 13, dtype: object

可以利用astype這個函數將資料型態進行轉換

reviews.points.astype("float64")
0         87.0
1         87.0
          ... 
129969    90.0
129970    90.0
Name: points, Length: 129971, dtype: float64

dataframe的index也有一樣的dtype

reviews.index.dtype
dtype('int64')

Missing Values

通常沒有資料的資料型態會寫做NaN,意思是Not a Number

pandas有提供一些方法可以處理這些空缺值,用pd.isnull(column)可以選取這些空值

reviews[pd.isnull(reviews.country)]
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}

填補這些空缺值是很常見的操作

pandas有提供一個簡單的操作來解決這個問題fillna()

像是我們可以將NaN替換成Unknown

reviews.region_2.fillna("Unknown")
0         Unknown
1         Unknown
           ...   
129969    Unknown
129970    Unknown
Name: region_2, Length: 129971, dtype: object

若要將資料替換掉也有很方便的方式,可以使用replace()

reviews.taster_twitter_handle.replace("@kerinokeefe", "@kerino")
0            @kerino
1         @vossroger
             ...    
129969    @vossroger
129970    @vossroger
Name: taster_twitter_handle, Length: 129971, dtype: object

上一篇
Day 16 [Python ML、Pandas] 組成群組合排序
下一篇
Day 18 [Python ML、Pandas] 重新命名和整合
系列文
使用python學習Machine Learning29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言