pandas fillna_Pandas极简教程——数据清洗

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:49   2658   0
1f0bcfb1bf777ed398e56e3f6bbb4bfa.png

在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换 以及重塑。pandas和内置的Python标准库提供了一组高级的、灵活的、 快速的工具,可以让你轻松地将数据规整为想要的格式。


缺失数据

在许多数据分析工作中,缺失数据是经常发生的。对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。

857f4eec92780cc103e9d59c8ddd3651.png
e58d10b6f81b88e8111681243273a7f0.png

过滤缺失数据(忽略)

一维序列:

9efc22cef59935577996cafdb358707b.png

二维dataframe:

db550cf634c6e15d7e679f87238cdd75.png
976a3468804fa17fad410ce3a256cede.png

数据填充

往往将缺失数据drop掉会造成大量的附带数据丢失,因此填充缺失值的应用更广,pandas有专门用于填充数据的函数fillna():

fillna(

value=None, #以固定值填充

method=None, #ffill用前面数据填,bfill用后面值填充

axis=None, #填充方向

inplace=False, #是否代替原对象

limit=None, #最多填充多少nan

downcast=None,

**kwargs,

)

5c3f7b9f66cfb081ea1b87aa6d4c8e4c.png

数据转换


移除重复数据

DataFrame的duplicated方法返回一个布尔型Series,表示各行是否是重复行(前面出现过的行);drop_duplicates方法,它会返回一个DataFrame,重复的数组会标为False:

0db2e3aba9aad95e7a352b7ec73effe4.png
6f6e60067c6c658864b487e843e60fa3.png

利用函数或映射进行数据转换

例:下面有一个员工表,增加一列,年龄超过30岁的标记为老员工,否则标记为年轻。

cb4aba7cdf05a932edfae7317a865865.png

替换值

fillna就相当于replace(np.nan,value)

bba58731e9ffff5b3a6dad085d31a3fc.png

重命名轴索引:

我们前面了解到DataFrame的index和columns可以直接更改:

66ba35caaedca376185aa4df6970a9b0.png

如果你只想修改某几个标签,可以用rename传递字典的方法实现:

861e4e57ecfc93f71a66cd348fe4cc52.png

离散化和面元划分

统计学中常常要对一组数据按大小进行分组,比如下面对考试的分数分组(每隔10),并统计每组的人数:

be07efe25b5205e3f396775882813742.png
a2da75bd2bc060d7d14d97720ac231e5.png

等长划分面元:

1fe8dd6b64a664fedf6aa5145d46b2fd.png

更强大的qcut:qcut是一个非常类似于cut的函数,它可以根据样本分位数对数据进行面元划分。

f7008fbcd54d0deec644bdc6c7d74a19.png
f0333a2a6f7dddb738d79f7fe05a65ba.png

随机取样---sample()

c4d328a8036beac401b9a214ac73780e.png

计算指标/哑变量

一种常用于统计建模或机器学习的转换方式是:将分类变量(categorical variable)转换为“哑变量”或“指标矩阵”。

5f9897016b4c3aa01b2f05a7ee677af2.png

字符串操作

Series.str内置了许多字符串处理函数,下表是常用的字符串处理函数

cabadcb04eaa0a402df4aa60faa7ab2e.png

例:提取员工表的姓和名

004d0a964d96c97cdd15facfae582b04.png
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP