数据集
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')
修改
os.makedirs(os.path.join('..', 'data'), exist_ok=True)
data_file = os.path.join('..', 'data', 'house_tiny.csv')
将 '..' 修改为自己的文件目录,我这里是D:\DeepLearning,注意修改斜杠,:
os.makedirs(os.path.join('D:/DeepLearning', 'data'), exist_ok=True)
data_file = os.path.join('D:/DeepLearning', 'data', 'house_tiny.csv')
位置索引iloc
用基于整数的下标来进行数据定位/选择,data.iloc[<row selection>, <column selection>]
左闭右开
iloc[a : b , c : d ]前面的冒号就是取行数,a~b-1;后面的冒号是取列数,c~d-1。
df.iloc[:,: -1]
会选择除了最后一列之外的所有行和所有列的数据df.iloc[:-1, :]
会选择除了最后一行之外的所有行和所有列的数据。
get_dummies
相当于one-hot编码,常用与把离散的类别信息转化为one-hot编码形式。
pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False,columns=None, sparse=False, drop_first=False)
- data : array-like, Series, or DataFrame 输入的数据
- prefix : string, get_dummies转换后,列名的前缀,默认为None
- columns : 指定需要实现类别转换的列名 否则转换所有类别性的列
- dummy_na : bool, default False 增加一列表示空缺值,如果False就忽略空缺值
- drop_first : bool, default False 获得k中的k-1个类别值,去除第一个,防止出现多重共线性
tips
如果新增的预测数据或分类数据的类别变量未包含完整的类别。此时直接使用pd.get_dummies,会发现与训练集得到的结果不一样。