<jupyter_start><jupyter_text>範例題目:
1. 認識類別資料
2. 實做缺值處理方法與應用函式
 範例重點:
1. 類別資料，有分順序型與一般型，使用的編碼方式不同
2. 缺失值有很多處理方式，在這邊簡單介紹2種常見的方式<jupyter_code>import pandas as pd
df = pd.DataFrame([['green', 'M', 'male', 'short'],
          ['red', 'L', 'female', 'normal'],
          ['blue', 'XL', 'male', 'long']])
df.columns =['color', 'size', 'sex', 'lenght']
df
#順序性類別資料，編碼也需要有順序性，將類別資料依序編碼由0到n-1，其中n為類別總數，因此類別之間會有順序關係0<1<2<….
from sklearn.preprocessing import LabelEncoder
df['size_label'] = LabelEncoder().fit_transform(df['size'].values)
df
#排序依照python內建順序，可以藉由ord()查看內建順序
ord('L'),ord('M')
#get_dummies()把資料表中的每個類別 對應的欄位，經過One-hot Encoding(一位有效編碼)
#One-hot Encoding(一位有效編碼) 是沒有順序性的編碼
pf = pd.get_dummies(df[['color']])
df = pd.concat([df, pf], axis=1)
df
temp_data = pd.DataFrame([['2020-11-01', 24.8], 
              ['2020-11-02', 24.8],
              ['2020-11-03', None],
              ['2020-11-04', 25]],columns=['date','current_temp'])
temp_data
#以0填補
temp_data.fillna(0)
#以該欄位所有資料的算術平均數做填補
temp_data.fillna(temp_data.current_temp.mean())
#以該欄位所有資料的中位數做填補
temp_data.fillna(temp_data.current_temp.median())
#運用參數method=‘ffill’即可填補前一列數值
temp_data.fillna(method='ffill')
#method=‘bfill’填補後一列數值
temp_data.fillna(method='bfill')
#內差法補值
temp_data.interpolate()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.18910505836575875, 'fraction_numerical': 0.04124513618677043, 'mean_word_length': 5.913978494623656, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '510720', 'license': 'MIT', 'n_tokens_mistral': 740, 'n_tokens_neox': 808, 'n_words': 77, 'path': 'Sample Code/Day_11_SampleCode.ipynb', 'repo_name': 'YenLinWu/DataScienceMarathon', 'size': '1285'}