我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

继续机器学习的泰塔尼克数据集文章,本文以kaggle竞赛的泰坦尼克数据集为标的物。当然,这个kaggle数据集和其它版本的泰坦尼克数据集也没有太大分别。只不过,kaggle的版本是已经固定切分好的,不用再对数据集进行训练集和测试集的切分。

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - 数据集观测手段
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码经验文章。本文测试环境:python@3.12.3。本文中,泰坦尼克数据集使用的是kaggle竞赛的版本。

下载数据集

kaggle的泰塔尼克数据集,下载地址:

下载kaggle的数据集可能需要科学上网,所以也可以考虑从gitee或者github上搜索获得对应的数据集合。

获得数据集文件,把传统的泰塔尼克数据集分为三个文件,分别是训练集train.csv(12字段)和测试集test.csv(11字段,差一个Survived字段),以及预测结果的范例(仅仅是范例)gender_submission.csv(2字段)。

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - 数据集文件组成
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-2)

至于每个字段的含义,可以参考官方页面,或者下面这篇文章。

加载数据

先加载到训练集和测试集,同时将数据合并还原一下,参考代码:

import pandas as pd

train_df = pd.read_csv("kaggle\\train.csv")
test_df = pd.read_csv("kaggle\\test.csv")

train_df2 = train_df.copy()
test_df2 = test_df.copy()
train_df2["source"] = "train"  # 用于合并后再区分出来
test_df2["source"] = "test"

all_df = pd.concat([train_df2, test_df2])  # 部分的Survived字段数据缺失
all_df_duplicated = pd.concat([train_df2, test_df2, test_df2])  # 后续有用

参考文章:

查看shape(行数列数)

查看dataframe的数据的shape,就可以得知条目数.shape[0]和字段数.shape[1]

print("训练集的形状:" + str(train_df.shape))
print(f"训练集,条目数:{train_df.shape[0]}")
print(f"训练集,字段数:{train_df.shape[1]}")

参考文章:

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - shape检测
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-3)

查看所有数据

print(test_df)

默认情况下,任何对dataframe的数据查看任务,都不会显示完整数据,而是部分内容采用...代替。所以,这里需要进行一下设置,以显示所有的数据,便于查看。

pd.set_option("display.max_rows", None)     # 数据行
pd.set_option("display.max_columns", None)  # 数据列

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - 设置输出完整数据
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-4)

参考文章:

查看头尾数据

可以使用.head()查看头几条数据或者使用.tail()查看后几条数据。当然,这里也受上一条设置的影响。

print(all_df.head())
print(all_df_duplicated.tail())

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - head和tail
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-5)

分组计数

侧重于统计:

print(all_df["source"].value_counts())

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - 分组数据统计
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-6)

侧重于查看:

def view_group(_group):
    for name, group in _group:
        print(f"group name: {name}")
        print(group)
        print("\n")
view_group(all_df.groupby("Sex"))

参考文章:

推断缺失值情况

从下面的截图可以推断:也就这个.info()用途似乎更大一些。

print(all_df.info())

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - info-non-null
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-7)

print(all_df.describe())

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - describe-result
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-8)

print(all_df.count())

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - 非空值统计
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-9)

参考文章:

查看重复数据

print(all_df_duplicated.nunique())

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - 唯一值统计
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-10)

print(all_df_duplicated.duplicated())

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - 重复的数据有多少条
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-11)

泰坦尼克号的数据集,没有重复数据。所以,这里制造了一个重复数据all_df_duplicated,用于测试。

print(all_df_duplicated.duplicated.sum())

对重复数据.drop后,就可以拿到不重复数据了。参考文章:

all_df_duplicated = all_df_duplicated.drop_duplicates()
print(all_df_duplicated.duplicated().sum())

苏南大叔:以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段 - drop重复值效果明显
以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段(图12-12)

结束语

本文以总结观测手段为主要目的,所以文章比较简单。由于.csv数据文件在python里面表现为dataframe。所以,文章的实质就是对dataframe数据观察手段的总结。并不是需要使用到本文的所有手段,某个方案只要好用能说明问题就行。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   ai    kaggle