python dataframe 如何去除缺失值
1、导入需要的库。import pandas as pd,import numpy as np,from sklearn.preprocessing import Imputer。
2、生成缺失数据。data=pd.DataFrame({'name':['Kite','Lily','Hanmei','Danny','Bob'],'English':[92,78,np.nan,23,82],'Math':[69,87,91,np.nan,90],'Chinese':[np.nan,78,96,np.nan,75]}),print(data)。
3、查看缺失值。data.isnull()#查看所有缺失值,data.isnull().any()#获取含有缺失值的列,data.isnull().all()#获取全部为NA的列。
4、删除缺失值。这种处理方式丢失的信息比较多。data2=data.dropna()。print(data2)可以看到,删除后,仅剩两行数据。
5、利用sklearn替换缺失值。当缺失值为数值型数据时,可用利用均值来替换。
6、利用pandas替换缺失值。data.fillna(0) #缺失值用0替换。
扩展资料
Python在执行时,首先会将py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,NET是一致的。
然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。
这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大;
说和Java 或NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。
基于C的Python编译出的字节码文件,通常是pyc格式。除此之外,Python还可以以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。直接下达操作指令即可实现交互操作。
Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。
它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和意外。
Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。
并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。
1、加载numpy、pandas、和Series,DataFrame。生成一个含有缺失值的Series,命名为s1。
2、缺失值的判断方法。s1.isnull()和s1.notnull()分别是判断元素是缺失值或者不是缺失值,刚好是相反的功能。
3、Series缺失值的删除。s1.dropna()为删除s1的缺失值后的数据,s1[s1.notnull()]则为取出s1中不是缺失值的数据。
4、为了看看DataFrame是如何删除缺失值的,新生成一个df2。
5、df2.dropna()默认删除了含有缺失值的所有行,如果我们只需要把某一行所有数据为缺失值的才删除,那么需要用how=‘all’进行限制,如df2.dropna(how='all')。
6、如果要删除DataFrame的缺失值所在的列,那么只需加上axis=1即可。
1、导入需要的库。import pandas as pd,import numpy as np,from sklearn.preprocessing import Imputer。
2、生成缺失数据。data=pd.DataFrame({'name':['Kite','Lily','Hanmei','Danny','Bob'],'English':[92,78,np.nan,23,82],'Math':[69,87,91,np.nan,90],'Chinese':[np.nan,78,96,np.nan,75]}),print(data)。
3、查看缺失值。data.isnull()#查看所有缺失值,data.isnull().any()#获取含有缺失值的列,data.isnull().all()#获取全部为NA的列。
4、删除缺失值。这种处理方式丢失的信息比较多。data2=data.dropna()。print(data2)可以看到,删除后,仅剩两行数据。
5、利用sklearn替换缺失值。当缺失值为数值型数据时,可用利用均值来替换。
6、利用pandas替换缺失值。data.fillna(0) #缺失值用0替换。
df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
# axis 指 轴,0是行,1是列,
# how 是删除条件:any 任意一个为na则删除整行/列,all 整行/列为na才删除
# inplace 是否在原DataFrame 上进行删除,false为否