DataWhale 9月组队学习-动手学数据分析 task2_学习记录

数据清洗及特征处理

通常原数据都是不干净的,可能存在异常值,缺失值以及其他问题。所以一般进行数据分析之前都需要先对数据进行清洗。

读个文件先

#加载所需的库
import numpy as np
import pandas as pd

#加载数据train.csv
df = pd.read_csv('train.csv')

缺失值观察与处理

缺失值,可能是人为失误或者机器失误造成部分数据值的空缺,如果不对这些空缺的地方进行操作,极大可能会影响我们后续分析或建模得到的结果。

首先是观察缺失值,观察缺失值的方法可以直接通过info()来查看,info()可以观察到行数、各列列名、每列非缺失值数、数据类型以及数据总量

df.info()

#运行结果

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   PassengerId  891 non-null    int64  
 1   Survived     891 non-null    int64  
 2   Pclass       891 non-null    int64  
 3   Name         891 non-null    object 
 4   Sex          891 non-null    object 
 5   Age          714 non-null    float64
 6   SibSp        891 non-null    int64  
 7   Parch        891 non-null    int64  
 8   Ticket       891 non-null    object 
 9   Fare         891 non-null    float64
 10  Cabin        204 non-null    object 
 11  Embarked     889 non-null    object 
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB

可以看到总共891行,但是Age、Cabin和Embarked的非缺失值数都没有达到891,说明其中都含有缺失值,但是这样子看不够直观,而且不能快速的看出各列一共有多少给缺失值,通过isnull()sum()组合可以查看每列的缺失值个数。

df.isnull()

在这里插入图片描述

df.isnull().sum()

#运行结果

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

如果再组合一个sum()就可以直接得出缺失值的总和

df.isnull().sum().sum()

#运行结果

866

isnull()是元素级别的判断,把对应的所有元素的位置都列出来,元素为空或者为Nan就显示True,否则就是False。pandas中会将NaN和None都处理为np.nan

None

None为python自带的,为None Type类型,代表空类型,并不能参与运算

df[df['Age']==None]

#结果显示为空,未检测到有空值

在这里插入图片描述

np.nan

numpy中的isnan对应的是NaN值,代表“不是数字”,数值类型为float,数组中显示为nan,能参与运算,但结果显示为NaN。

df[df['Age']==np.nan]

#结果显示依旧为空,这里并不是真的不存在空值!

在这里插入图片描述

注意:这里卡了我好久,后来在论坛上找了下,找到了原因。计算机中本没有绝对相等的数据,所谓的相等只是精度允许的条件下相等!np.nan原意为not a number,所以,对于某值是否为nan进行判断,只能使用np.isnan(i),绝不能用i == np.nan来判断,因为nan具有不等于自身的属性!

参考资料:https://blog.csdn.net/craftsman2020/article/details/107739405

isnull()

这里顺带一提,numpy用isnan()检查是否存在NaN,pandas用isna()或者isnull()检查是否存在NaN。pandas它是构建在numpy之上的,在numpy中,即没有na也没有null,而只有NaN(“Not A Number”),因此,pandas也沿用NaN值,所以造成了isna和isnull两个名称不同但功能相同的情况。

在不同的应用场景中,对缺失值的处理都不一样,大致可分为:

  • 删除元组
  • 数据补齐
  • 不处理

删除元组就算将存在遗漏信息属性值的对象(元组,记录)删除,从而得到一个完备的信息表,以减少历史数据来换取信息的完备,但可能会对数据资源造成一定的浪费,若在数据集不大且缺失值较多的情况下,该方法可能并不适用。

数据补齐是最常用的缺失值处理方式,补齐的方法也比较多,例如:人工填写、特殊值填充、平均值填充、K最近距离邻法等等,使用这些方法需要对数据有一定的了解,寻找最合适的填充方式。

不处理缺失值我认为在某些人工神经网络中,尚不确定缺失值对模型训练结果有何影响,可以考虑不处理缺失值来进行观测。

参考资料:https://blog.csdn.net/zrjdds/article/details/50223091

删除元组

删除元组的操作通常都采用dropna(),此操作会将缺失值所在行一并删除

#原数据
df.head(5)

在这里插入图片描述

#删除缺失值
df.dropna().head(5)

在这里插入图片描述

通过观察乘客ID可以发现,部分乘客数据已经消失了。

数据补齐

在上述中,我们已经可以正确判断缺失值元组,如果再进行简单的数据填充就很方便了

直接对空缺的位置进行赋值,我这里用0去填充

df[df['Age'].isnull()] = 0
df.head
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "Legendofmir2_server.zip" 是一个文件压缩包,其中包含了 "Legend of Mir 2" 这款游戏的服务器文件。"Legend of Mir 2" 是一款受欢迎的多人在线角色扮演游戏,玩家可以在游戏世界中选择不同的角色并与其他玩家互动。 这个压缩包里的服务器文件包括了游戏服务器的运行所需的各种文件和目录。其中可能包含了服务器的配置文件、数据库文件、游戏地图文件、角色和物品数据等等。通过这些文件,玩家可以运行一个独立的 "Legend of Mir 2" 服务器,创建自己的游戏世界,并邀请其他玩家一起玩耍。 运行一个 "Legend of Mir 2" 服务器需要一定的计算机知识和技能。玩家需要了解如何配置服务器,如何设置网络连接,以及如何管理和维护服务器。同时,玩家还需要确保自己拥有合法的游戏授权,以遵守相关的游戏使用协议或许可证协议。 通过运行一个 "Legend of Mir 2" 服务器,玩家可以体验到更多的自由和创造力。他们可以自定义游戏规则、修改或创建自己的游戏地图、增加新的角色和物品等等。同时,他们还可以邀请朋友或其他玩家加入自己的服务器,一同探索游戏世界、组队战斗、交易物品等等。 总的来说,"Legendofmir2_server.zip" 提供了一个创建并运行 "Legend of Mir 2" 服务器的起点,让有兴趣的玩家可以尝试搭建自己的游戏世界,并与其他玩家共同享受游戏的乐趣。 ### 回答2: "Legendofmir2_server.zip"是一个包含了Legend of Mir 2游戏服务器文件的压缩包。Legend of Mir 2是一款由中国研发的多人在线角色扮演游戏。该游戏基于中世纪的东方神秘世界背景,以及惊险刺激的战斗和角色发展系统而闻名。 这个压缩包包含了搭建和运行Legend of Mir 2游戏服务器所需的所有文件和配置。对于那些想要创建自己的Mir 2服务器、进行本地或私人游戏的玩家来说,这个压缩包是不可或缺的。 通过解压这个压缩包,玩家可以获得游戏服务器的全部文件,包括游戏客户端、网络连接配置、安全设置和其他必需的资源文件。这使得玩家能够在自己的本地环境中,或者通过互联网在私人服务器上运行Mir 2游戏。 对于那些有编程和网络知识的玩家来说,通过修改服务器配置文件,他们可以自定义游戏的不同方面,例如游戏规则、角色属性、物品掉落和经验值设定等。这为他们创造自己的游戏环境提供了无限的可能性。 总之,Legendofmir2_server.zip是一个重要的文件,对于那些想要在本地或私人服务器上搭建和运行自己的Mir 2游戏服务器的玩家来说,它是不可或缺的。该压缩包中包含了游戏服务器所需的全部文件和配置,玩家可以通过修改配置文件来自定义游戏环境。 ### 回答3: 《热血传奇2》是一款经典的多人在线角色扮演游戏,在游戏中,玩家可以选择不同种族的角色,并与其他玩家一起冒险、战斗、升级。而"legendofmir2_server.zip"是游戏服务器的压缩文件。服务器是游戏中的核心部分,负责连接玩家、处理游戏逻辑以及提供游戏服务。 "legendofmir2_server.zip"文件中包含了服务器的相关程序和资源文件。这些文件经过压缩后,可以方便地传输、存储和备份。玩家可以根据自己的需求,下载并安装这个压缩文件,然后利用服务器程序来搭建自己的游戏服务器。 有了游戏服务器,玩家可以建立一个私人的游戏世界,邀请自己的朋友一起游玩。他们可以通过互联网连接到服务器,选择自己喜欢的角色,在游戏中进行冒险、交流和战斗。此外,玩家还可以根据自己的需求,修改服务器配置,并通过服务器管理工具来监控和管理游戏服务器。 "legendofmir2_server.zip"文件的存在,使得玩家可以尝试自己搭建游戏服务器,享受到更多自由和乐趣。同时,它也为游戏开发者和爱好者提供了一个学习和研究的平台,他们可以通过分析服务器程序和资源文件,了解游戏的内部机制和实现原理。 总之,"legendofmir2_server.zip"是《热血传奇2》游戏服务器的压缩文件,通过安装这个文件,玩家可以搭建自己的游戏服务器,与其他玩家一起体验游戏的乐趣。此外,它还为游戏开发者和爱好者提供了一个学习和研究的平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值