ad

从《Python数据分析案例教程》中_领悟数据和Python的魅力_6.1.3 填充缺失值

admin 140 2023-10-25

【摘要】 本书摘自《Python数据分析案例教程》一书中第6章,第1节,由万念斌、肖伟东、叶丰标编著。

6.1.3 填充缺失值

数据处理过程中发现缺失值后,缺失值在数据处理中有作用,不能采用删除缺失值的方 法,这时可以用一些特殊值来填充缺失值。 Pandas使用 fillna()函数来填充缺失值。 fillna()函 数的作用是填充缺失数据,函数原型为:

DataFrame.fillna(value = None,method= None,axis =None,inplace =False,limit= None, …)

常见参数作用如下:

从《Python数据分析案例教程》中_领悟数据和Python的魅力_6.1.3 填充缺失值

(1)value:值可以是 scalar、dict、Series或 DataFrame,用于填充缺失值的值。

(2)method: 值可以是{'backfill','bfill','pad','ffill',None},默认值为 None。

(3)axis:值可以是{0 or'index',1 or'columns'},当 axis的值为0或“index”时表示填 充包含缺失值的行;当 axis 的值为1或"columns"表示填充包含缺失值的列,默认值为0。

(4)inplace:布尔型,默认值为False,如果为 True,则在原地执行操作。(5)limit:int,默认值为 None, 如果指定了方法,则是连续 NaN 值的前向/后向填充的 最大数量,即如果连续 NaN 数量超过指定的数字,它将只被部分填充。如果未指定方法,则 是沿着整个轴的最大数量,其中NaN 将被填充。指定的数字必须大于0。

【案例6-3】填充缺失值。代码如下:

#encoding:utf-8

import pandas as pd

def main():

# 1.指定特殊值填充缺失值

df=pd.DataFrame([[1,2,2],[3,None,6],[3,7,None],[5,None,7]])

print(数据帧 df'.center(30,'—'),'\n',df)

#用0填充所有缺失数据

printC用0填充所有缺失数据.center(20,'—'),'\n',df.fillna(0))

# 2.使用不同的值填充不同的列

print(使用不同的值填充不同的列数据.center(20,'-'),\n',df.fillna({1:1.99,2:2.99})) # 3.前向填充和后向填充

#前向填充,默认是上一行的值,设置axis=1 可以使用列进行填充

print('前向填充'.center(20,'—'),\n',df.fillna(method="ffill"))

#后向填充,默认是上一行的值,设置 axis=1 可以使用列进行填充

print(后向填充.center(20,'—'),'\n',df.fillna(method="bfill"))

# 4.使用列的平均值填充

print('使用列的平均值填充',center(20,'-'),\n',df.fillna(df.mean()))

if name ==" main ":

__ __ __ __

main()

程序运行结果如下:

D:\anaconda\python.exe C:/Users/dell/PycharmProjects/My01/教学设计4--Pandas 缺失值 处理/填充缺失值.py

----数据帧 df-

1

3

3

5

1

2.0

NaN

7.0

NaN

2

2.0

6.0

NaN

7.0

----用0 填充所有缺失数据------

1

3

3

5

1

2.0

0.0

7.0

0.0

2

2.0

6.0

0.0

7.0

---使用不同的值填充不同的列数据---

0 1 2

0 1 2.00 2.00

1 3 1.99 6.00

2 3 7.00 2.99

3 5 1.99 7.00

--前向填充--------

0 1 2

0 1 2.0 2.0

1 3 2.0 6.0

2 3 7.0 6.0

3 5 7.0 7.0

--------后向填充--------

0 1 2

0 1 2.0 2.0

1 3 7.0 6.0

2 3 7.0 7.0

3 5 NaN 7.0

-----使用列的平均值填充-----

1

3

3

5

1

2.0

4.5

7.0

4.5

2

2.0

6.0

5.0

7.0

Proccss finished with cxit code 0

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阅读《基于Python语言的软件测试技术》_打开新的知识大门_4.3.5 SQA 测试目标
下一篇:学会《大数据可视化技术》_轻松读懂你的数据_6.1.2 使用网络爬虫提取文本数据
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×