数据加载与粗略查看
处理丢失的数据
处理偏离值
数据统计
特征值的合并、连接
数据转换、标准化、归一化
数据加载与粗略查看
数据加载
一般训练与测试的数据都提供csv格式,使用pandas库读取:
df_train = pd.read_csv('../train.csv')
此时读取的df_train为DataFrame格式。
同时pandas还可以读取各种不同格式的数据,如存储比较快的hdf格式、excel等
但有时数据不是简单的csv,它按照文本保存,如“ID||texttexttexttext”这样的一条数据需要将中间的“||”当作分隔符,读取方式如下:
train = pd.read_csv('../input/training_text', sep="\|\|", engine='python', header=None, skiprows=1, names=["ID","Text"])
更多参数应该查阅pandas文档。
数据粗略查看
在pandas读进来数据一个train后,train的格式为DataFrame,调用下面的几个方法就可以大致了解我们得到的数据是什么,有什么特征值,特征值的数据类型是什么,如果是数值那么最大最小值是什么等:
train.head(5) #显示前5行数据
train.tail(5) #显示后5行
train.columns #查看列名
train.info() #查看各字段的信息
train.shape #查看数据集行列分布,几行几列
train.describe() #查看数据的大体情况
如train.describe():
train.describe()
处理丢失的数据
处理这些数据以前不建议把train与test 连接起来,因为这样容易造成test里数据的丢失,个人认为较好的方式为:
full_data = [train, test]
将两个数据集合成为list,然后清洗时对其for循环即可,如:
for dataset in full_data:
dataset['FamilySize'] = dataset['SibSp'] + dataset['Parch'] + 1
下面只介绍对测试集train 的操作。
找到丢失的位置
输出每个列丢失值也即值为NaN的数据和,并从多到少排序:
total = train.isnull().sum().sort_values(ascending=False)
print(total)
Cabin 687
Age 177
Embarked 2
Fare 0
Ticket 0
Parch 0
SibSp 0
Sex 0
Name 0
Pclass 0
Survived 0
PassengerId 0
也可以输出百分比:
percent =(train.isnull().sum()/train.isnull().count()).sort_values(ascending=False)
missing_data = pd.concat([total, percent], axis=1, keys=['Total