pandas DataFrame.fillna()填充缺失函数的使用
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()填充缺失函数的使用相关推荐
- python fillna,Pandas之Fillna填充缺失数据的方法
约定: import pandas as pd import numpy as np from numpy import nan as NaN 填充缺失数据 fillna()是最主要的处理方式了. d ...
- python中fillna_Python pandas.DataFrame.fillna函数方法的使用
DataFrame.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, ...
- pandas中的 fillna使用(pandas.DataFrame.fillna)
api参考: fillna: 使用指定的方法填充 NA/NaN 值. >>> df = pd.DataFrame([[np.nan, 2, np.nan, 0],[3, 4, np. ...
- 『Python核心技术与实战』pandas.DataFrame()函数介绍
pandas.DataFrame()函数介绍! 文章目录 一. 创建DataFrame 1.1. numpy创建 1.2. 直接创建 1.3. 字典创建 1.4. Series和DataFrame 二 ...
- [转载] pandas DataFrame apply()函数(1)
参考链接: Pandas DataFrame中的转换函数 之前已经写过pandas DataFrame applymap()函数 还有pandas数组(pandas Series)-(5)apply方 ...
- pandas dataframe 中 explode()函数用法及效果
最近在使用pyspark处理数据,需要连接各种各样的表和字段,因此记录相关函数的使用情况.今天介绍explode(). 1. explode()函数简介 explode 函数是 pan ...
- pandas用众数填充缺失值_7步搞定数据清洗-Python数据清洗指南
脏数据就是在物理上临时存在过,但在逻辑上不存在的数据. 数据清洗是整个数据分析过程的第一步,就像做一道菜之前需要先择菜洗菜一样.数据分析师经常需要花费大量的时间来清洗数据或者转换格式,这个工作甚至会占 ...
- 熊猫DataFrame groupby()函数
1.熊猫groupby()函数 (1. Pandas groupby() function) Pandas DataFrame groupby() function is used to group ...
- python explode_pandas dataframe 中的explode函数用法详解
在使用 pandas 进行数据分析的过程中,我们常常会遇到将一行数据展开成多行的需求,多么希望能有一个类似于 hive sql 中的 explode 函数. 这个函数如下: Code # !/usr/ ...
最新文章
- 没用过这些 IDEA 插件?怪不得写代码头疼
- 音视频技术开发周刊 | 230
- 倒计时2天,WebRTCon 2018有哪些有趣有料分享与活动?
- ubuntu下的各种环境变量
- linux闹钟软件下载,电量充满警示闹铃
- 奇偶链表的分割(C++)
- Eclipse中如何更改字体大小?
- Java - 泛型 ( Generic )
- python写扫雷脚本_利用Python实现自动扫雷小脚本
- Python 自带性能强悍的标准库 itertools
- 怎么样快速修改HOSTS文件?让火绒等小工具来帮忙
- POC-T框架学习————7、相关脚本深入学习三
- ps怎么缩放图层大小_Photoshop如何调整图层大小?PS调整图层大小快捷键
- 单词记忆 词根词缀记忆 总结
- python文件处理基础_第六篇:python基础之文件处理
- Boxplot(盒图)
- 国产化机器视觉嵌入式主板RK3399
- 数据结构2(线性表)
- php字体大小_PHP中改变网页文字大小代码
- 51Nod-2006 飞行员配对(二分图最大匹配,匈牙利算法)
热门文章
- PostgreSQL无法连接Server(报错could not connect to server)
- 永磁同步电机无速度传感器控制(一)——滑模观测器(二)【滑模观测器设计过程】
- F-选座椅_牛客小白月赛61 (nowcoder.com) 双指针,差分,2021济南ICPC- K Search For Mafuyu (pintia.cn) dfs
- 山海演武传·黄道·第一卷 雏龙惊蛰 第二十 ~ 二十一章 异世界的算命大师
- 微软专家销售部,热招
- 图文说明win10系统桌面上用户账户文件夹名变英文的方案介绍
- Flash游戏存档文件 .sol文件替换+拷贝教程 附sol Editor下载
- 华为荣耀长按出现第三方信息及服务器,华为荣耀6手机常见问题要领.pdf
- IDEA 导入jar包
- PGSql生成随机数,生成8位ID,类UUid,数字id