pandas删除某列有空值的行_Python-零基础学习Pandas知识点整理(2)

b279a7d3f0e7bd5fc82340e0ac6c2834.png

DataFrame数据的清洗--预处理操作

import pandas as pd

import numpy as np

af77c7e7f725887eefe9ee1406c4ae16.png

b0c6bae2577a8579e4bdcdecd6b32682.png

#DataFrame数据框行或列的删除
#df.drop(labels=None,axis=0,index=None,columns=None,level=None,inplace=False,error="raise")
#labels 表示需要删除的行或列的标签,多行或多列用列表传入数据 labels=["a","b"]
#axis 表示删除的是行或列 如果指定了index或columns参数,那么axis可以不传入。
# index 表示需要删除的行的索引
# columns 表示需要删除的列索引
#inplace 传入bool类型数据,True表示改变原DataFrame,False表示不改变原DataFrame
#使用drop删除行或列时,可以使用条件判断进行删除。
# df.drop(df[(df["a"]=="5")&(df["b"]==6)]) #表示删除df中"a"列中值等于5并且"b"列中值等于6的行数据(由于没有指定axis,默认为0)
##注释:df[df["a"]==5] 表示选择"a"列中值为5对应的行; 先选择"a"这列,然后选择"a"列中值等于5的这行.
df[df["b"]==5]
#DataFrame数据框数据的去重:
df.duplicated(subset=["b","k"]) #默认情况下是判断DataFrame中每行数据是否有重复值,返回bool值的Series;如果传入参数subset= 表示指定对应的columns,返回的是指定列中是否存在重复值的行。
#因此duplicated是横向判断重复值,返回对应的Series数据,在使用是一般是不需要传入subset参数的,需要判断多列是否存在重复值的行,以列表[] 形式传入参数。
'''如果指定了某列,则返回某列的布尔值Series。不写subset参数,则表示对整个df进行判断(判断整个是否存在完全相同的行,如果存在完全相同的行,则该行显示True,
如果两行中的对应的好几列中有一个值不同,则表示不是重复,返回False),则返回整个df的布尔值Series(也是按一列布尔值输出)'''
df.drop_duplicates() #默认情况下对特定的列进行去重,也就是去除指定列中含有重复值的行。
#Df.drop_duplicates(subset=None,keep="first",inplace=False)
'''Subset= " " #用来指定特定的列,默认是所有列。通俗来讲就是指定某列,需要删除某列中含有重复的数据,如果有重复数据,则所在重复数据的整行会被直接删除,相当与是跨行操作。如果SubSet=["A","B"],也就是A和B列对应位置的值相同时才被删除该行,不相同的话就算A中有再多的重复值都不会被删除。
Keep="first" 保留第一次出现的值,"last" 保留最后一次出现的值
Inplace=True /False 是否替换原来的df,默认为False,即不替换。'''
#DataFrame中缺失值的判断 isna() / isnull(),notnull()
df1.isna() #判断df中是否存在缺失值,返回与df相同的布尔类型的DataFrame
df1.isnull() #判断df1中是否存在缺失值。与isna()作用相同。 由于是对每个位置的元素进行判断,因此返回和原来相同的DataFrame布尔值。
#DataFrame缺失值填充fillna()
#df.fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=None) #对df中的缺失值进行填充指定的值,method与value不能共存。
# '''value 表示需要用于填充缺失值的值。可以通过字典的方式对不同列的空值填充不同的值,例如:df.fillna({"A":0,"B":1,"C":3} "A"列中的空值填充为0;"B"列的空值填充为1;"C"列中的空值填充为3.
# axis 表示填充的维度,是按照行填充还是按照列进行填充。
# method 表示填充的方法,ffill:用缺失值前面的一个值代替缺失值,如果axis =1,那么就是横向的前面的值替换后面的缺失值,如果axis=0,那么则是上面的值替换下面的缺失值。backfill/bfill,缺失值后面的一个值代替前面的缺失值。注意这个参数不能与value同时出现
# limit 表示确定填充的个数,例如limit=3 表示只填充df中的两个空值。
# inplace 布尔类型,是否改变原df。'''
#DataFrame值的替换 replace()
#df.replace(to_replace=None,value=None,inplace=False,limit=None,regex=False,method="pad",axis=None)
#简单的理解就是需要在df中的某个值替换成另一个值。
# to_replace : 需要被替换的值,可以通过字典来指定将多个值分别进行替换,作用与Series中replace相同。
# value : 用该值来替换to_replace的值。
'''
df.replace({"A":3,"B":"小明"},20) #表示将df的"A"列中对应的3和“B”列中对应的"小明",用20来进行替换。
df.replace(3,"A") #表示将df中value值中存在的3,全部替换成"A"。
df["年龄"].replace(3,"A") #表示只将df中"年龄"对应列中的3,替换成 "A",其他地方的3不会改变。'''
#DataFrame的分组操作 groupby() 返回的是分组后的groupby数据类型。
#df.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=<object>,observed=False,dropna=True) #进行数据分组,以及进行组内运算.
# by : 表示需要分组的列。
#axis : 表示是按照行分组还是按照列进行分组。
df["b"].groupby(by=df["k"]).count() #表示按照df中"a"列数据进行分组,并统计个分组后的数据的个数。
df.groupby(by=df["k"]).count() #表示将df按照"k"列进行分组,返回k列中元素分组后的个数,df有多少列,就返回多少列,值都是一样的。因此可以通过如下选择其中需要的列即可:
df.groupby(by=df["b"])["d"].count() #返回分组后d列对应的元素个数返回值。

【内容持续更新... 如果觉得对你有帮助,帮忙点个收藏和关注,谢谢!】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第4章 Python 数字图像处理(DIP) - 频率域滤波12 - 选择性滤波 - 带阻

目录选择性滤波带阻滤波器和带通滤波器陷波滤波器选择性滤波 处理特定的频带的滤波器称为频带滤波器 带阻滤波器&#xff1a; 若某个频带中的频率被滤除 带通滤波器&#xff1a; 若某个频带中的频率被通过 处理小频率矩形区域的滤波器称为陷波滤波器 陷波带阻滤波器&#x…

python打包工具报错_python打包生成exe报错

如图所示 如果出现的是这个问题可以可以考虑以下方法 首先卸载原先下载的 Pyinstaller pip uninstall pyinstaller 再执行以下代码&#xff0c;去github上下载 pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip 注释&#xff1a;再次打包&#xff…

去除lcd图片的摩尔纹_宝妈时尚产后有妊娠纹怎么办?教你这三招,轻松修复肚皮!...

产后肚子上长妊娠纹&#xff0c;相信是很多妈妈的痛点。首先我们来介绍一下什么是妊娠纹。由于妊娠期荷尔蒙的影响&#xff0c;加之腹部膨隆使皮肤的弹力纤维与胶原纤维损伤或断裂&#xff0c;腹部皮肤变薄变细&#xff0c;出现一些宽窄不同、长短不一的粉红色或紫红色的波浪状…

anaconda 换清华镜像源 windows

方法1 Windows 下安装好Anaconda 应该会有如下这些应用&#xff0c;我们打开如下图anaconda Prompt(下面简称prompt)&#xff0c;(当然CMD也可以&#xff0c;只是我比较喜欢用prompt) 打开如下图 使用下面命令&#xff0c;即可以添加清华镜像 conda config --add channels …

提高表格可读性的一些技巧

表格的应用由于工作原因&#xff0c;经常接触到表格。我们发现&#xff0c;表格不但广泛的运用在各类数据收集和分析&#xff0c;同时通过表格这样一种二维矩阵来整理和陈列信息时&#xff08;即便最后的展示方式并非一个典型的表格样式&#xff09;&#xff0c;能够很好的表达…

分页第一页用0还是1_如何设计api分页

常规的分页方式API处理分页看似简单&#xff0c;实际上暗藏危机。最常见的分页方式&#xff0c;大概是下面这样的/users/?page1&limit5//服务端返回最理想的情况下&#xff0c;客户端请求第一页的5条数据&#xff0c;服务端如常返回&#xff0c;比如下图:拿Twitter的图用一…

数据挖掘肿瘤预测_科研套路不嫌多,数据挖掘发3分

解螺旋公众号陪伴你科研的第2003天如何复现一篇3分生信研究做科研需要先学习套路&#xff0c;才能超越套路。今天给大家介绍的套路文献是今年发表在《Oncology reports》(IF 3.041)上的一篇文章。文章的标题虽然看上去比较泛&#xff0c;但也让读者一眼就能知道主题了&#xff…

Jupyter notebook 导出PDF的3种方法

很多用Jupyter notebook的都想导出PDF&#xff0c;但是我们点击Download as PDF via LaTex. 然后呢&#xff1f; Ohzzzzzzzzz 出现下图的错误&#xff0c;看到这里感觉糟糕透啦。虽然可以根据提供的方法解决这个问题。下面我说说我的方法吧。 方法1 打开jupyter notebook&a…

mybatis中的#{value}和${value}的区别

2019独角兽企业重金招聘Python工程师标准>>> 1. #{value}将传入的数据都当成一个字符串&#xff0c;会对自动传入的数据加一个双引号。 2. ${value}将传入的数据直接显示生成在sql中。 3. #{value}方式能够很大程度防止sql注入。  4.${value}方式无法防止Sql注入。…

数据库备份失败问题

备份对于服务器“服务器名”失败。&#xff08;Microsoft.SqlServer.Smo&#xff09; 其他信息&#xff1a;System.Data.SqlClient.SqlError:无法打开备份设备c:\abc.bak。出现操作系统错误5(拒绝访问。)。(Microsoft.SqlServer.Smo&#xff09; 解决办法&#xff1a; Sql Serv…

pandas 在jupyter notebook时候能用,但在vscode, pycharm不能用

先看错误。 AttributeError: partially initialized module ‘pandas’ has no attribute ‘Series’ (most likely due to a circular import) 分一下这种错误 ‘…’ has no attribute ‘…’ 库没有 ’…’ 这种问题&#xff0c;要么库没有装好&#xff0c;或者装的库的…

解决 IDEA 调用其他类的时候自动加上包路径和类名的情况_idea 快捷键汇总(转)...

1.IDEA常用快捷键Alt回车 导入包,自动修正CtrlN 查找类CtrlShiftN 查找文件CtrlAltL 格式化代码CtrlAltO 优化导入的类和包AltInsert 生成代码(如get,set方法,构造函数等)CtrlE或者AltShiftC 最近更改的代码CtrlR 替换文本CtrlF 查找文本CtrlShiftSpace 自动补全代码Ctrl空格 代…

8位可控加减法器_自主可控:QTouch在军工道系统上的应用

自主可控&#xff1a;QTouch在军工道系统上的应用一、系统介绍"道系统"操作系统是一款面向各领域的嵌入式实时操作系统&#xff0c;支持单核及多核CPU硬件配置&#xff0c;可替换相关领域的VxWorks 6.8/6.9操作系统二、产品特性 具备自主知识产权的嵌入式实时操作系统…

iOS - Frame 项目架构

前言 iOS 常见的几种架构&#xff1a; 标签式 Tab Menu列表式 List Menu抽屉式 Drawer瀑布式 Waterfall跳板式 Springborad陈列馆式 Gallery旋转木马式 Carousel点聚式 Plus1、标签式 优点&#xff1a; 1、清楚当前所在的入口位置2、轻松在各入口间频繁跳转且不会迷失方向3、直…

Windows 10下,anaconda (conda) 虚拟环境的创建,jupyter notebook如何使用虚拟环境

手把手教您创建conda 虚拟环境 1 安装好anaconda后&#xff0c;会出现如下所示&#xff0c;这些都是anaconda集成啦&#xff0c;不需要再安装了。我们在如下所指的anaconda Prompt右键&#xff0c;以管理员运行 2 打开后&#xff0c;这就是prompt&#xff0c;我们输入pyth…

python下载文件传到服务器_python实现FTP文件传输的方法(服务器端和客户端)

用python实现FTP文件传输&#xff0c;包括服务器端和客户端&#xff0c;要求 &#xff08;1&#xff09;客户端访问服务器端要有一个验证功能 &#xff08;2&#xff09;可以有多个客户端访问服务器端 &#xff08;3&#xff09;可以对重名文件重新上传或下载 FTP&#xff08;F…

vscode 里 Import “numpy“ count not be resolved

问题如下&#xff1a; 我们分析一下这个问题&#xff0c;这里的问题。问题的翻译是&#xff1a;导入"numpy"不能被解决。 这可能有几个问题&#xff0c;1&#xff1a;vscode的python插件没有安装&#xff0c;2: vscode的python的解析器没有设置好。 按照这个思路&…

xdocument查找节点值_二叉查找树(java)

一棵二叉查找树(BST)是一颗二叉树&#xff0c;其中每个节点都含有一个Comparable的键且每个节点的键(以及相关的值)都大于其左子树中的任意节点的键而小于右子树的任意结点的键。数据表示和链表一样&#xff0c;我们嵌套定义了一个私有类来表示二叉查找树上的一个节点。每个节点…

三角形 画_CAD入门基础第3节:直角三角形的圆及如何修剪

这个软件&#xff0c;仔细想想&#xff0c;无非就两个命令&#xff0c;一是直线命令&#xff0c;二&#xff0c;就是圆。直线&#xff0c;无非也就是两种&#xff0c;一&#xff0c;是水平直线和垂直于水平直线的竖线&#xff0c;二&#xff0c;就是各种斜线。第一种直线&#…

windows 10下搭建pyspark与遇到的一些问题的解决方法

目录windows 10 下 搭建 pyspark所需要的工具过程与步骤windows 10 下 搭建 pyspark 所需要的工具 Java JDK 1.8.0 spark-2.2.0-bin-hadoop2.7 hadoop-2.7.3 winutils.exe 还需要有python环境&#xff0c;我用的是Anaconda 3&#xff08;默认你已经装好此环境&#xff09;。…