get_dummies
是利用pandas实现one hot encode的方式
机器学习之One-Hot Encoding详解 - 简书 (jianshu.com)https://www.jianshu.com/p/cb344e1c860a
one hot encode 独热编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。
pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False)
import pandas as pd
df = pd.DataFrame([
['green' , 'A'],
['red' , 'B'],
['blue' , 'A']])
df.columns = ['color', 'class']
pd.get_dummies(df)
对每个类别的值都进行0-1编码
上述执行完以后再打印df 出来的还是get_dummies 前的图,因为你没有写
df = pd.get_dummies(df)
可以对指定列进行get_dummies
pd.get_dummies(df.color)
也可以将指定列进行get_dummies 后合并到元数据中
df = df.join(pd.get_dummies(df.color))
将指定列进行get_dummies 后合并到元数据中
df = df.join(pd.get_dummies(df.color))
import os
os.makedirs(os.path.join('..', 'data'), exist_ok=True)
data_file = os.path.join('..', 'data', 'house_tiny.csv')
with open(data_file, 'w') as f:
f.write('NumRooms,Alley,Price\n') # 列名
f.write('NA,Pave,127500\n') # 每行表示一个数据样本
f.write('2,NA,106000\n')
f.write('4,NA,178100\n')
f.write('NA,NA,140000\n')
import pandas as pd
data = pd.read_csv(data_file)
print(data)
input , output = data.iloc[:, 0:2], data.iloc[:, 2]
input = input.fillna(input.mean())
print(input)