在进行数据竞赛时候,拿到一个数据集,应该进行如下操作:
- 查看train中label的分布,主要查看正负样本是否均衡,以及主办方是否有将数据集打乱,如果数据集样本没有打乱,可能会存在data leak,这一步需要用到的代码有如下
train['target'].value_counts() #主要查看,存在的target的类别以及相对应的出现频数
sns.countplot(train['target']) # 主要是可视化,target的类别以及相对应的出现频数
sns.stripplot(x='y', y = 'ID', data = train)
plt.show() #这两行代码是用来check训练集中的数据是否有被打乱
- 查看train的基本信息以及统计信息内容,代码如下:
train.info()
train.describe()
我们还可以以下的代码,来查看train中的columns的名字
train.columns
train.columns.values
- 因为现实中的数据,都比较脏,因此我们需要查看数据集中是否有NA存在,我们可以使用
isnull().sum()
需要注意的是,isnull().sum()
和isnull().any()
的返回值是不一样的。
4. isnull().sum()
的返回值是每一列存在多少个NA。
5. isnull().any()
的返回值是对每一列是否存在NA的布尔判断。
有时候,我们希望对整个dataframe有一个全局的感知,整个时候,我们可以借鉴如下代码:
def miss_data(df):
miss_val = df.isnull().sum()
total = df.isnull().count()
per = (miss_val / total) * 100
tt = pd.concat([total, per