python dataframe fillna_python缺失值处理 fillna

python dataframe fillna_python缺失值处理 fillna约定:importpandasaspdimportnumpyasnpfromnumpyimportnanasNaN填充缺失数据fillna()是最主要的处理方式了。df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])df1代码结果:01201.02.03.01NaNNaN2.02NaNNaNNaN38….

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

约定:

import pandas as pd

import numpy as np

from numpy import nan as NaN

填充缺失数据

fillna()是最主要的处理方式了。

df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])

df1

代码结果:

0

1

2

0

1.0

2.0

3.0

1

NaN

NaN

2.0

2

NaN

NaN

NaN

3

8.0

8.0

NaN

用常数填充:

df1.fillna(100)

代码结果:

0

1

2

0

1.0

2.0

3.0

1

100.0

100.0

2.0

2

100.0

100.0

100.0

3

8.0

8.0

100.0

通过字典填充不同的常数:

df1.fillna({0:10,1:20,2:30})

代码结果:

0

1

2

0

1.0

2.0

3.0

1

10.0

20.0

2.0

2

10.0

20.0

30.0

3

8.0

8.0

30.0

传入inplace=True直接修改原对象:

df1.fillna(0,inplace=True)

df1

代码结果:

0

1

2

0

1.0

2.0

3.0

1

0.0

0.0

2.0

2

0.0

0.0

0.0

3

8.0

8.0

0.0

传入method=” “改变插值方式:

df2=pd.DataFrame(np.random.randint(0,10,(5,5)))

df2.iloc[1:4,3]=NaN;df2.iloc[2:4,4]=NaN

df2

代码结果:

0

1

2

3

4

0

6

6

2

4.0

1.0

1

4

7

0

NaN

5.0

2

6

5

5

NaN

NaN

3

1

9

9

NaN

NaN

4

4

8

1

5.0

9.0

df2.fillna(method=’ffill’)#用前面的值来填充

代码结果:

0

1

2

3

4

0

6

6

2

4.0

1.0

1

4

7

0

4.0

5.0

2

6

5

5

4.0

5.0

3

1

9

9

4.0

5.0

4

4

8

1

5.0

9.0

传入limit=” “限制填充个数:

df2.fillna(method=’bfill’,limit=2)

代码结果:

0

1

2

3

4

0

6

6

2

4.0

1.0

1

4

7

0

NaN

5.0

2

6

5

5

5.0

9.0

3

1

9

9

5.0

9.0

4

4

8

1

5.0

9.0

传入axis=” “修改填充方向:

df2.fillna(method=”ffill”,limit=1,axis=1)

代码结果:

0

1

2

3

4

0

6.0

6.0

2.0

4.0

1.0

1

4.0

7.0

0.0

0.0

5.0

2

6.0

5.0

5.0

5.0

NaN

3

1.0

9.0

9.0

9.0

NaN

4

4.0

8.0

1.0

5.0

9.0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170006.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • es5简单总结

    es5简单总结建议张鑫旭原文内容导读 1 简介 2 浏览器支持 3 ES5 的严格模式 4 JSON5 添加对象 6 额外的数组 7 Function prototype bind8 补充参考简介 ECMAScript5 1 或仅 ES5 是 ECMAScript 基于 JavaScript 的规范 标准最新修正 与 HTML5 规范进程本质类似 ES5 通过对现有 JavaScript 方法添加语

    2025年12月3日
    3
  • 学习笔记:Oracle dul数据挖掘 使用DUL数据恢复软件恢复分区表中

    学习笔记:Oracle dul数据挖掘 使用DUL数据恢复软件恢复分区表中

    2021年9月16日
    59
  • <artifactId>ojdbc8</artifactId>「建议收藏」

    spring-boot-starter-parent作用在pom.xml中引入spring-boot-start-parent,spring官方的解释叫什么staterpoms,它可以提供dependencymanagement,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了,后面可以看到。spring-boot-starter-web作用springweb核心组件spring-boot-maven-plugin作用如果我们要直接Main启动sprin

    2022年4月16日
    79
  • 自带win10系统换win7的那些坑

    自带win10系统换win7的那些坑自带win10系统换win7的那些坑 这两天真是经历了一个换系统的巨坑。如果说这次换系统是一部历史的话那也一定是一部血泪史。今日4000多字的记录会把这部血泪史中的血和泪一一道出。不为别的只为:前车之鉴后事之师! 首先我对win10系统本身就很不喜欢,因为它不稳定兼容性差,还经常更新,用户总是给微软当小白鼠进行测试系统。之前就一直吐槽win10的自动更新无法…

    2022年6月4日
    49
  • # SpringCloud集成 报错 An attempt was made to call a method that does not exist. The attempt was made

    # SpringCloud集成 报错 An attempt was made to call a method that does not exist. The attempt was madeSpringCloud集成报错Anattemptwasmadetocallamethodthatdoesnotexist.Theattemptwasmadefromthefollowinglocation:详细报错结果如下:原因是SpringCloud和spring-boot-starter-parent的版本配置不搭配解决方法Greenwich2.1.x(可用2.1.4.RELEASE)Finchley2.0.x(可用2.0.5.RELEASE)

    2025年6月14日
    1
  • ASSERT_VALID_assert语句

    ASSERT_VALID_assert语句ASSERT()ASSERT()被测试它的参数,若参数为0,则中断执行并打印一段说明消息。在Release版本的程序中它不起任何作用。ASSERT()使用的时候必须保证参数表达式中不能有函数调用(译者注:ASSERT()宏在Release版本中不对表达式求值),因此对于任何有函数调用的参数表达式,应该使用宏VERIFY(),以保证表达式中的函数调用在Release版本中会被正确求值…

    2025年9月20日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号