1. Pandas中将如下类型定义为缺失值:
NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’,
‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘’, ‘N/A’, ‘NA’,
‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’,None

2. 填充缺失值
pandas.DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
value:用于填充的空值的值。
method: {'backfill', 'bfill', 'pad', 'ffill', None}, default None。定义了填充空值的方法,
                pad / ffill表示用前面行/列的值,填充当前行/列的空值,
                backfill / bfill表示用后面行/列的值,填充当前行/列的空值。
axis:轴。0或'index',表示按行删除;1或'columns',表示按列删除。
inplace:是否原地替换。布尔值,默认为False。如果为True,则在原DataFrame上进行操                            作,返回值为None。
limit:int, default None。如果method被指定,对于连续的空值,这段连续区域,最多填充前           limit 个空值(如果存在多段连续区域,每段最多填充前 limit 个空值)。如果method未被             指定, 在该axis下,最多填充前 limit 个空值(不论空值连续区间是否间断)

downcast:dict, default is None,字典中的项为,为类型向下转换规则。或者为字符串“infer”,此时会在合适的等价类型之间进行向下转换,比如float64 to int64 if possible。

import pandas as pd
import numpy as npdic = {"a": [8, np.nan, np.nan, 6, 9], "b": pd.Series([np.nan, 6, np.nan, np.nan, 10]), "c": ["qq", np.nan, np.nan, np.nan, 88]}  # DataFrame的col2的"B"和"C"行为nan
df = pd.DataFrame(dic)
print("df = \n", df, sep="")# pd.isna(df) 判断是否是nan
print("pd.isna(df) = \n", pd.isna(df), sep="")# pd.notna(df) 判断是否不是nan
print("pd.notna(df) = \n", pd.notna(df), sep="")# 注:inplace默认为False,表示pd.fillna()返回一个新的DataFrame,原df不变(下面均设置为False);如果设置为True则表示在原df上填充,返回None
# 1. df.fillna(value), df中的所有的nan都用单一的value替换并返回
df2 = df.fillna(10,method=None,axis=1,  # axis=0或"index":沿着行的向(纵向); axis=1或"column":是沿着列的方向(横向)limit=2,   # 在没指定method的情况下,沿着axis指定方向上填充的个数不大于limit设定值inplace=False)  # 返回新的DataFrame
print("用10替换后的df2 = \n", df2)# 2. 用字典的方式填充nan
dic2 = {"a": 0, "b": 1, "c": 2}  # 字典的key为column
df4 = df.fillna(dic2,axis=0,  # 用字典填充时,只能设置为0limit=2,  # 最多替换2个inplace=False)  # 返回新的DataFrame
print("用字典替换后的df = \n", df4)# 3. 用DataFrame替换
df5 = pd.DataFrame(np.arange(10).reshape((5, 2)), columns=["a", "b"])
df6 = df.fillna(df5, inplace=False)  # df的"c"列在df5中不存在,所以不受影响
print("用DataFrame替换后的df = \n", df6)# 2.  df.fillna(method="ffill")  method=ffill用前一个值替换nan,method=bfill用后一个值替换nan,如果nan没有前一个或者后一个值,nan将不会被替换
df3 = df.fillna(method="ffill",axis=0,  # axis=0或"index":沿着行的前一个或者后一个值替换nan; axis=1或"column":是沿着列的前一个或后一个值替换nanlimit=1,  # 在指定method的情况下,连续填充的nan数量不超过limit设定值inplace=False)  # 返回新的DataFrame
print(df)
print("用前一个值替换后的df = \n", df3)

pandas DataFrame.fillna()填充缺失函数的使用相关推荐

  1. python fillna,Pandas之Fillna填充缺失数据的方法

    约定: import pandas as pd import numpy as np from numpy import nan as NaN 填充缺失数据 fillna()是最主要的处理方式了. d ...

  2. python中fillna_Python pandas.DataFrame.fillna函数方法的使用

    DataFrame.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, ...

  3. pandas中的 fillna使用(pandas.DataFrame.fillna)

    api参考: fillna: 使用指定的方法填充 NA/NaN 值. >>> df = pd.DataFrame([[np.nan, 2, np.nan, 0],[3, 4, np. ...

  4. 『Python核心技术与实战』pandas.DataFrame()函数介绍

    pandas.DataFrame()函数介绍! 文章目录 一. 创建DataFrame 1.1. numpy创建 1.2. 直接创建 1.3. 字典创建 1.4. Series和DataFrame 二 ...

  5. [转载] pandas DataFrame apply()函数(1)

    参考链接: Pandas DataFrame中的转换函数 之前已经写过pandas DataFrame applymap()函数 还有pandas数组(pandas Series)-(5)apply方 ...

  6. pandas dataframe 中 explode()函数用法及效果

            最近在使用pyspark处理数据,需要连接各种各样的表和字段,因此记录相关函数的使用情况.今天介绍explode(). 1. explode()函数简介 explode 函数是 pan ...

  7. pandas用众数填充缺失值_7步搞定数据清洗-Python数据清洗指南

    脏数据就是在物理上临时存在过,但在逻辑上不存在的数据. 数据清洗是整个数据分析过程的第一步,就像做一道菜之前需要先择菜洗菜一样.数据分析师经常需要花费大量的时间来清洗数据或者转换格式,这个工作甚至会占 ...

  8. 熊猫DataFrame groupby()函数

    1.熊猫groupby()函数 (1. Pandas groupby() function) Pandas DataFrame groupby() function is used to group ...

  9. python explode_pandas dataframe 中的explode函数用法详解

    在使用 pandas 进行数据分析的过程中,我们常常会遇到将一行数据展开成多行的需求,多么希望能有一个类似于 hive sql 中的 explode 函数. 这个函数如下: Code # !/usr/ ...

最新文章

  1. 没用过这些 IDEA 插件?怪不得写代码头疼
  2. 音视频技术开发周刊 | 230
  3. 倒计时2天,WebRTCon 2018有哪些有趣有料分享与活动?
  4. ubuntu下的各种环境变量
  5. linux闹钟软件下载,电量充满警示闹铃
  6. 奇偶链表的分割(C++)
  7. Eclipse中如何更改字体大小?
  8. Java - 泛型 ( Generic )
  9. python写扫雷脚本_利用Python实现自动扫雷小脚本
  10. Python 自带性能强悍的标准库 itertools
  11. 怎么样快速修改HOSTS文件?让火绒等小工具来帮忙
  12. POC-T框架学习————7、相关脚本深入学习三
  13. ps怎么缩放图层大小_Photoshop如何调整图层大小?PS调整图层大小快捷键
  14. 单词记忆 词根词缀记忆 总结
  15. python文件处理基础_第六篇:python基础之文件处理
  16. Boxplot(盒图)
  17. 国产化机器视觉嵌入式主板RK3399
  18. 数据结构2(线性表)
  19. php字体大小_PHP中改变网页文字大小代码
  20. 51Nod-2006 飞行员配对(二分图最大匹配,匈牙利算法)

热门文章

  1. PostgreSQL无法连接Server(报错could not connect to server)
  2. 永磁同步电机无速度传感器控制(一)——滑模观测器(二)【滑模观测器设计过程】
  3. F-选座椅_牛客小白月赛61 (nowcoder.com) 双指针,差分,2021济南ICPC- K Search For Mafuyu (pintia.cn) dfs
  4. 山海演武传·黄道·第一卷 雏龙惊蛰 第二十 ~ 二十一章 异世界的算命大师
  5. 微软专家销售部,热招
  6. 图文说明win10系统桌面上用户账户文件夹名变英文的方案介绍
  7. Flash游戏存档文件 .sol文件替换+拷贝教程 附sol Editor下载
  8. 华为荣耀长按出现第三方信息及服务器,华为荣耀6手机常见问题要领.pdf
  9. IDEA 导入jar包
  10. PGSql生成随机数,生成8位ID,类UUid,数字id