Pandas 替换 NaN 值
替换Pandas DataFram中的 NaN 值
问题
NaN 代表 Not A Number,是表示数据中缺失值的常用方法之一。它是一个特殊的浮点值,不能转换为 float 以外的任何其他类型。NaN 值是数据分析中的主要问题之一。为了得到理想的结果,对 NaN 进行处理是非常必要的。
方法
用零替换Pandas DataFram中的 NaN 值的方法:
- fillna(): 用于使用指定的方法填充 NA/NaN 值。
- replace():
dataframe.replace()
函数用于替换字符串、正则表达式、列表、字典的简单方法。
下面以替换为0举例, 可以替换为任意值,依照个人情况考虑。关于上述两个函数的用法,可以参考官方链接,功能很强大。
替换 NaN 值的步骤
- 对一列数据使用
fillna()
:
df['DataFrame Column'] = df['DataFrame Column'].fillna(0)
- 对一列数据使用
replace
:
df['DataFrame Column'] = df['DataFrame Column'].replace(np.nan, 0)
- 对整个数据使用
fillna()
:
df.fillna(0)
- 对整个数据使用
replace
:
df.replace(np.nan, 0)
示例
- 对一列数据使用
fillna()
# importing libraries
import pandas as pd
import numpy as npnums = {'Set_of_Numbers': [2, 3, 5, 7, 11, 13, np.nan, 19, 23, np.nan]}# Create the dataframe
df = pd.DataFrame(nums, columns =['Set_of_Numbers'])# Apply the function
df['Set_of_Numbers'] = df['Set_of_Numbers'].fillna(0)# print the DataFrame
df
- 对一列数据使用
replace()
# importing libraries
import pandas as pd
import numpy as npnums = {'Car Model Number': [223, np.nan, 237, 195, np.nan,575, 110, 313, np.nan, 190, 143, np.nan],'Engine Number': [4511, np.nan, 7570, 1565, 1450, 3786, 2995, 5345, 7777, 2323, 2785, 1120]}# Create the dataframe
df = pd.DataFrame(nums, columns=['Car Model Number'])# Apply the function
df['Car Model Number'] = df['Car Model Number'].replace(np.nan, 0)# print the DataFrame
df
- 对所有数据使用
fillna()
# importing libraries
import pandas as pd
import numpy as npnums = {'Number_set_1': [0, 1, 1, 2, 3, 5, np.nan, 13, 21, np.nan],'Number_set_2': [3, 7, np.nan, 23, 31, 41, np.nan, 59, 67, np.nan],'Number_set_3': [2, 3, 5, np.nan, 11, 13, 17, 19, 23, np.nan]}# Create the dataframe
df = pd.DataFrame(nums)# Apply the function
df = df.fillna(0)# print the DataFrame
df
- 对所有数据使用
replace()
# importing libraries
import pandas as pd
import numpy as npnums = {'Student Name': [ 'Shrek', 'Shivansh', 'Ishdeep', 'Siddharth', 'Nakul', 'Prakhar', 'Yash', 'Srikar', 'Kaustubh', 'Aditya', 'Manav', 'Dubey'],'Roll No.': [ 18229, 18232, np.nan, 18247, 18136, np.nan, 18283, 18310, 18102, 18012, 18121, 18168],'Subject ID': [204, np.nan, 201, 105, np.nan, 204, 101, 101, np.nan, 165, 715, np.nan],'Grade Point': [9, np.nan, 7, np.nan, 8, 7, 9, 10, np.nan, 9, 6, 8]}# Create the dataframe
df = pd.DataFrame(nums)# Apply the function
df = df.replace(np.nan, 0)# print the DataFrame
df
参考
- https://www.heywhale.com/mw/project/5d86eced8499bc002c108cc8
- https://www.geeksforgeeks.org/replace-nan-values-with-zeros-in-pandas-dataframe/
- https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.replace.html
Pandas 替换 NaN 值相关推荐
- python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行。
python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行. import pandas as pd import numpy as np df1 = pd.Data ...
- pandas替换列值+1
import pandas df = pd.DataFrame({'Age':[33,44,22,44,55,22],'Income':['Low','Low','High','Medium','Me ...
- pandas替换列值
方法一 data[col] = np.where(data[col].isnull(),0,1) def dataprocess(data):for col in ('EMAILADD','QQNO' ...
- python字符串替换空格_python - 用pandas中的NaN替换空白值(空格)
python - 用pandas中的NaN替换空白值(空格) 我想在Pandas数据帧中找到包含空格(任意数量)的所有值,并用NaN替换这些值. 有什么想法可以改进吗? 基本上我想转此: A B C ...
- pandas 空字符串与na区别_关于python:Pandas用空白/空字符串替换NaN
我有一个Pandas Dataframe,如下所示: 1 2 3 0 a NaN read 1 b l unread 2 c NaN read 我想用空 ...
- 如何在熊猫数据框的列中将所有NaN值替换为零
本文翻译自:How can I replace all the NaN values with Zero's in a column of a pandas dataframe I have a da ...
- pandas怎么去除nan_pandas缺失值处理之——如何消去Nan值对数字型字符串数据类型的影响,让数字型字符串保持原始str类型,而不会自动变为float类型?...
在利用pandas处理表格时,往往有时我们用表格做的测试用例往往会设计考一些必填项*故意赋值为空(代表不输入)的测试用例, 比如说我们的手机号.身份证号码.社会统一信用代码等都是数字型字符串.如下所示 ...
- pandas水平concat后出现NaN值
pandas水平拼接 result = pd.concat([df1, df2, df3,...], axis=1) 问题原因: 如果排除本身每个df自身有NaN值外,出现这种情况就是各df的索引顺序 ...
- Pandas-如何对指定某列的NaN值进行替换或填充
前言 本文是该专栏的第31篇,后面会持续分享python数据分析的干货知识,记得关注. 笔者在本专栏之前有单独详细介绍过,使用Numpy对数组元素进行替换的方法,感兴趣的同学,可翻阅查看"N ...
最新文章
- 3、如何证明static静态变量和类无关?
- STM32中NVIC_SystemReset()函数的作用?什么时候用?
- quartz定时器依赖_Grails集成Quartz插件实现定时任务(Job)
- 【笔试题】简单的两道笔试题(1、打印杨辉三角;2、三个数排序)
- pom文件报错_maven-resources-plugin修改了我的文件
- ESP8266等模块
- 项目管理中风险评价的必要性
- C++(STL):19---deque之删除和emplace用法
- A1051. DNA序列
- 内向的人可以做产品经理吗?
- 并行 并发 多线程 区别
- java smtp.126.com_java开发_STMP邮箱客户端_发送邮件
- java选择,智力,数量,推理
- Android项目之利用手机传感器做惯性导航
- 开发”小米商城官网首页”(静态页面)
- Office365上启用Skype For Business并实现本地AD用户登录
- 求子集PHP,JavaScript求非空子集数目的实现方法
- c语言单片机自动浇花系统,Arduino零基础C语言编程ch5-5.13综合示例–自动浇花系统...
- 使用bat批处理脚本自动设置IP和IE代理
- WAF——web安全及web应用防火墙
热门文章
- Oracle-19-like运算符转义操作符
- 2023年深圳积分入户考这个软考高级证书错不了!加分真高!
- 【中秋系列征文】明月寄相思
- C++define用法
- java怎么录入4位会员号_java会员信息录入 需求说明: 录入会员信息 判断录入的会员号是否合法...
- 朋友圈小霸王游戏机,领取链接和源码找回青春记忆
- java override报错_java @override 报错处理
- 以下几种情况,建议你趁早辞职!
- 织梦dedecms首页调用企业名称、简介、公司logo等的方法
- 用户态与内核态的区别与理解