以kaggle泰坦尼克数据集为例,列举数据集观测的几种手段
发布于 作者:苏南大叔 来源:程序如此灵动~继续机器学习的泰塔尼克数据集文章,本文以kaggle
竞赛的泰坦尼克数据集为标的物。当然,这个kaggle
数据集和其它版本的泰坦尼克数据集也没有太大分别。只不过,kaggle
的版本是已经固定切分好的,不用再对数据集进行训练集和测试集的切分。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码经验文章。本文测试环境:python@3.12.3
。本文中,泰坦尼克数据集使用的是kaggle
竞赛的版本。
下载数据集
kaggle
的泰塔尼克数据集,下载地址:
下载kaggle
的数据集可能需要科学上网,所以也可以考虑从gitee
或者github
上搜索获得对应的数据集合。
获得数据集文件,把传统的泰塔尼克数据集分为三个文件,分别是训练集train.csv
(12字段)和测试集test.csv
(11字段,差一个Survived
字段),以及预测结果的范例(仅仅是范例)gender_submission.csv
(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]}")
参考文章:
查看所有数据
print(test_df)
默认情况下,任何对dataframe
的数据查看任务,都不会显示完整数据,而是部分内容采用...
代替。所以,这里需要进行一下设置,以显示所有的数据,便于查看。
pd.set_option("display.max_rows", None) # 数据行
pd.set_option("display.max_columns", None) # 数据列
参考文章:
查看头尾数据
可以使用.head()
查看头几条数据或者使用.tail()
查看后几条数据。当然,这里也受上一条设置的影响。
print(all_df.head())
print(all_df_duplicated.tail())
分组计数
侧重于统计:
print(all_df["source"].value_counts())
侧重于查看:
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())
print(all_df.describe())
print(all_df.count())
参考文章:
- https://newsn.net/say/dataframe-info.html
- https://newsn.net/say/dataframe-describe.html
- https://newsn.net/say/dataframe-count.html
查看重复数据
print(all_df_duplicated.nunique())
print(all_df_duplicated.duplicated())
泰坦尼克号的数据集,没有重复数据。所以,这里制造了一个重复数据all_df_duplicated
,用于测试。
print(all_df_duplicated.duplicated.sum())
对重复数据.drop
后,就可以拿到不重复数据了。参考文章:
all_df_duplicated = all_df_duplicated.drop_duplicates()
print(all_df_duplicated.duplicated().sum())
结束语
本文以总结观测手段为主要目的,所以文章比较简单。由于.csv
数据文件在python
里面表现为dataframe
。所以,文章的实质就是对dataframe
数据观察手段的总结。并不是需要使用到本文的所有手段,某个方案只要好用能说明问题就行。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。