V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fanqieipnet
V2EX  ›  推广

使用最经典的泰坦尼克数据集如何快速清洗数据?

  •  
  •   fanqieipnet · 2020-12-24 17:32:18 +08:00 · 961 次点击
    这是一个创建于 1433 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用最经典的泰坦尼克数据集如何快速清洗数据?今天番茄加速就来给大家演示一下。

      首先导入包:

       import numpy as np import pandas as pd import seaborn as snsimport matplotlib.pyplot as plt

      导入数据

       df = pd.read_csv('./kaggle-data/titanic/train.csv')

      找到所有列的 None 值

       df.isnull().sum()

       PassengerId 0Survived 0Pclass 0Name 0Sex 0Age 177SibSp 0Parch 0Ticket 0Fare 0Cabin 687Embarked 2dtype: int64

       Age 列较多,使用平均值填充

       df['Age'] = df['Age'].transform(lambda val: val.fillna(val.mean()))

       sex 列映射 male 为 0,female 为 1

       df['Sex'] = df['Sex'].map({'male': 0, 'female': 1})df = df.fillna(0)

      接下来就是最关键的,使用 corr 方法,找出各个变量间的相关系数,并使用 heatmap 绘制相关性:

       plt.figure(figsize=(8,6), dpi=150)sns.heatmap(data=df.corr(), cmap='coolwarm', annot=True)

      找出与 survived 列最相关的几个特征:

       np.abs(df.corr()['Survived']).sort_values().tail(6)

      去掉相关不大的列,得到如下影响 survived 最大的特征 DataFrame:

       X = df.drop(['Survived', 'Cabin', 'Name', 'Embarked', 'Ticket'], axis=1)
    3 条回复    2020-12-25 11:05:40 +08:00
    sadfQED2
        1
    sadfQED2  
       2020-12-24 19:04:38 +08:00 via Android
    现在的推广连背景都不交代下?
    GeruzoniAnsasu
        2
    GeruzoniAnsasu  
       2020-12-24 19:41:05 +08:00
    软文写得连要推广的自家东西都忘了放进去我还是第一次见
    julyclyde
        3
    julyclyde  
       2020-12-25 11:05:40 +08:00
    就是啊,网址呢?企业名呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5491 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:47 · PVG 16:47 · LAX 00:47 · JFK 03:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.