pandas学习之drop和dropna篇
drop和dropna的用法详解
进行数据清洗时,经常会遇到缺失值。
处理缺失值的一种方式是,直接删除
dropna篇
官方文档:
DataFrame.dropna(self, axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
参数:
0.构建实例
import pandas as pd
import numpy as np
df = pd.DataFrame({'name':['zhao','qian','sun','li'],'mark':[150,122,np.nan,32],'gender':['female',np.nan,np.nan,'male']})
dfname mark gender
0 zhao 150.0 female
1 qian 122.0 NaN
2 sun NaN NaN
3 li 32.0 male
1.axis: axis=0、index,删除所在行,axis=1、columns,删除所在列。默认为行。default
df.dropna(axis=0) #删除空值所在行,1,2行被删掉name mark gender
0 zhao 150.0 female
3 li 32.0 maledf.dropna(axis='columns')#删除空值所在列,mark、gender都被删掉name
0 zhao
1 qian
2 sun
3 li
2.how:选择删除的模式,有any和all两种。
- any:只要存在空值即删除所在行列,默认为any。default
- all:所在行或列如果全是空值,则删除
df.dropna(axis=0,how='any')#any模式name mark gender
0 zhao 150.0 female
3 li 32.0 male#为方便演示,新构建一下dfname mark gender
0 zhao 150.0 female
1 qian 122.0 NaN
2 sun NaN NaN
3 li 32.0 male
4 NaN NaN NaNdf.dropna(axis=0,how='all')#all模式,第5行被删除name mark gender
0 zhao 150.0 female
1 qian 122.0 NaN
2 sun NaN NaN
3 li 32.0 male
3.thresh:指定当一行或一列存在多少非空值时,保留该行或该列
thresh 美 [θrεʃ] vt.打(谷);翻来覆去vi.打谷脱粒
dfname mark gender
0 zhao 150.0 female
1 qian 122.0 NaN
2 sun NaN NaN
3 li 32.0 male
4 NaN NaN NaNdf.dropna(axis=0,thresh=1) #当df中每行有至少1个非空值是,保留该行name mark gender
0 zhao 150.0 female
1 qian 122.0 NaN
2 sun NaN NaN
3 li 32.0 maledf.dropna(axis=0,thresh=2)#当df中,每行至少有2个空值,保留该行name mark gender
0 zhao 150.0 female
1 qian 122.0 NaN
3 li 32.0 male
4.subset:传入一个列表,指定相应的列名,如果指定列内有空值,则删除所在行,可以和how搭配。
dfname mark gender
0 zhao 150.0 female
1 qian 122.0 NaN
2 sun NaN NaN
3 li 32.0 male
4 NaN NaN NaNdf.dropna(how='all',subset=['name','gender'])#name和gender列同为空值是,删除对应的行。name mark gender
0 zhao 150.0 female
1 qian 122.0 NaN
2 sun NaN NaN
3 li 32.0 male
5.inplace:执行操作后,将返回值赋值给df。default=“False”
dfname mark gender
0 zhao 150.0 female
1 qian 122.0 NaN
2 sun NaN NaN
3 li 32.0 male
4 NaN NaN NaNdf.dropna(inplace=True) #df已重新赋值
dfname mark gender
0 zhao 150.0 female
3 li 32.0 male
drop篇
官方文档:
DataFrame.drop**(self,** labels=None**,** axis=0**,** index=None**,** columns=None**,** level=None**,** inplace=False**,** errors='raise’)
参数
0.构建实例
import pandas as pd
import numpy as np
df = pd.DataFrame({'name':['张三','李四','王二','麻子','杜甫'],'mark':[120,111,135,150,151],'gender':['male','female','female','male',np.nan]})
df #构建出df实例name mark gender
0 张三 120 male
1 李四 111 female
2 王二 135 female
3 麻子 150 male
4 杜甫 151 NaN
1.labels:按照标签删除对应的行或列,接受单个标签或是一个列表。
df.drop('name',axis=1)#删除列需加上axis参数mark gender
0 120 male
1 111 female
2 135 female
3 150 male
4 151 NaNdf.drop([1,3])#传入多个参数需使用列表name mark gender
0 张三 120 male
2 王二 135 female
4 杜甫 151 NaN
2.axis:指出需要删除的是行(0或index,)还s是列(1或columns),default = 0.默认为0
#效果同上,此处不演示了
3.index\columns:0.21.0版本之后,可以通过直接指定index= 来代替“label= ,axis=”。可以传入单个标签或是一个列表。
dfname mark gender
0 张三 120 male
1 李四 111 female
2 王二 135 female
3 麻子 150 male
4 杜甫 151 NaNdf.drop(index= 1)#这里等价于df.drop(1,axis=0)name mark gender
0 张三 120 male
2 王二 135 female
3 麻子 150 male
4 杜甫 151 NaNdf.drop(columns= ['name','gender'])#这里等价于df.drop(['name','gender'],axis=2)mark
0 120
1 111
2 135
3 150
4 151
4.level:针对多级标签。多级标签计算时,从0开始。
m_index1=pd.Index([("A","x1"),("A","x2"),("B","y1"),("B","y2"),("B","y3")],name=("class1","class2"))
#创建多级标签
df1=pd.DataFrame(np.random.randint(1,10,(5,3)),index=m_index1)
df1#构建一个df0 1 2
class1 class2
A x1 6 6 6x2 1 8 6
B y1 3 6 2y2 5 9 2y3 9 8 1df1.drop(index = ['y1','y2','x1'],level=1)#删除多级索引,从0开始,第二个,所以level=10 1 2
class1 class2
A x2 1 8 6
B y3 9 8 1
5.inplace:同dropna中效果一样,删除数据后自动赋值。
6.errors:如果传入的标签不存在,会报错,KeyError,errors可以忽略报错。可选择raise和ignore,default=raise
dfname mark gender
0 张三 120 male
1 李四 111 female
2 王二 135 female
3 麻子 150 male
4 杜甫 151 NaNdf.drop(columns= ['name','number'])#没有number列,结果会报错,keyerror
KeyError Traceback (most recent call last)in
----> 1 df.drop(columns= ['name','number'])df.drop(columns= ['name','number'],errors='ignore')#忽略报错,删除参数中有的列mark gender
0 120 male
1 111 female
2 135 female
3 150 male
4 151 NaN
pandas学习之drop和dropna篇相关推荐
- pandas数据清洗:drop函数案例详解、dropna函数案例详解、drop_duplicates函数案例详解
pandas数据清洗:drop函数.dropna函数.drop_duplicates函数详解 1 drop函数简介 1.1 构建学习数据 1.2 删除行两种方法 1.3 删除列两种方法 2 dropn ...
- Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略
Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop().dropna().isna().isnull().fillna())函数详解之详细攻略 目录 pandas中缺 ...
- 【pandas drop()和dropna()函数使用详解】
drop和dropna的用法详解 进行数据清洗时,经常会遇到缺失值. 处理缺失值的一种方式是,直接删除 dropna使用 DataFrame.dropna(self, axis=0, how='any ...
- 数据分析之pandas学习笔记(六)(层次化索引、重塑、轴向旋转、行列变换、合并表数据)
数据分析之Pandas学习笔记(六)(层次化索引.重塑.轴向旋转.行列变换.合并表数据) level层次化索引 unstack()与stack()进行重塑,即:行列索引变换 swaplevel()交换 ...
- pandas python2_Python数据分析之pandas学习(二)
有关pandas模块的学习与应用主要介绍以下8个部分: 1.数据结构简介:DataFrame和Series 2.数据索引index 3.利用pandas查询数据 4.利用pandas的DataFram ...
- pandas学习笔记之DateFrame
pandas学习笔记之DateFrame 文章目录 pandas学习笔记之DateFrame 1.DateFrame的创建 1)认识DataFrame对象 2)由二维列表创建(默认index和colu ...
- python数据分析-pandas学习
文章目录 一.pandas环境的搭建 1.pandas 简介 2.pandas安装和调用 二.pandas学习 1.pandas简介 2.pandas学习资源 3.pandas核心数据结构 4.Ser ...
- Pandas学习(三)---数值运算
Pandas学习--数值运算 数值计算和统计基础 常用数学.统计方法 基本参数:axis.skipna 主要数学计算方法,可用于Series和DataFrame(1) 主要数学计算方法,可用于Seri ...
- 基于Anaconda的pandas学习
基于Anaconda的pandas学习 Pandas安装 创建对象 创建Series对象 创建DataFrame对象 创建date_range 查看数据 获取数据 直接获取 索引获取 增删改数据 索引 ...
最新文章
- CNN在Keras中的实践|机器学习你会遇到的“坑”
- C++中为何构造函数不可是虚函数,而析构函数可以?
- centos查看网关地址
- 有几个人会用计算机,怎么知道我家的wifi有几个人在使用
- sqli-labs\Less 25~30
- OpenFileDialog 打开文件对话框
- css入门之head区设置
- 笑跪!博士写论文解释科学擀面,学霸们每天都在想些啥…
- map slice综合示例 go语言
- java中构造器的调用顺序
- 聊聊spring cloud的HystrixCircuitBreakerConfiguration
- 雷神开机logo更改_升级BIOS/更换开机logo教程
- java高级工程师认证考试_Java高级软件工程师人才缺口巨大
- 在Windows 2008中使用winvnc
- 微信小程序 常用组件
- 2022软件测试技能 Mysql数据库必会知识点总结
- vim 重新编译,支持lua (compile vim with lua)
- python画苹果标志图片_替换/绘制/分享:让所有 App 拥有 macOS 11 Big Sur 风格的图标...
- 【Java字符串分割[split()]和截取[substring()]】
- ASFG - AI可以帮你自动生成字幕文件