技术标签: pandas # numpy tricks numpy Python # pandas
最近在做数据处理的时候,遇到个让我欲仙欲死的问题,那就是数据中的空值该如何获取。
我的目的本来是获取数据中的所有非零且非空值,然后再计算获得到的所有数据计算均值,再用均值把0和空值填上。这个操作让我意识到了i is None/np.isnan(i)/i.isnull()之间的差别,再此做简单介绍:
先明确一个问题,即空值的产生只有np.nan()一种方法。
# np.nan()的一些奇妙性质:
np.nan == np.nan
>>> False
np.isnan(np.nan)
>>> True
np.nan is None
>>> False
type(np.nan)
>>> float
总结一下:
# 首先创建一个DataFrame:
bb = pd.DataFrame({'a':[0,1,2,np.nan]})
bb
>>> a
0 0.0
1 1.0
2 2.0
3 NaN
# 先测试一下np.isnan()
np.isnan(bb)
>>> a
0 False
1 False
2 False
3 True
# 值得一提的是,如果想获悉整个DataFrame有无空值,可以在此基础上这样做:
np.isnan(bb).all()
>>> a False
dtype: bool # 这行是指返回值的dtype
# 再测试一下isnull()
pd.isnull(bb)
>>> a
0 False
1 False
2 False
3 True
由上可见,其实np.isnan()和pd.isnull()都可以对不论是DataFrame、Python list还是仅仅一个数值进行空值检测。但一般在实际应用中,np.isnan()多用于单个值的检验,pd.isnull()用于对一个DataFrame或Series(整体)的检验。
此外,根据pandas官方文档和源代码,pandas提供的另一个函数pd.isna()与pd.isnull()完全一样。
上面提到的any()/all()函数,请见pandas文档:
其他与空值检测或删除相关的函数还有:notna()、fillna()、dropna()等等。实战中应灵活使用。
文章浏览阅读749次。1.使用CString输出圆心坐标CString str1, str2, str3;str1.Format("%d,", "%d", conter0.x, conter0.y);str2.Format("%d,", "%d", conter1.x, conter1.y);str3 = " ; ";c_circle_center = str1 + str2 + str3;..._format的cstring 坐标如何取出
文章浏览阅读114次。1.下载scala压缩包wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz如果下载不了,只能去找压缩包了。下面利用secureCRT进行文件传输进入以后,设置一下编码,和系统匹配linux下面进行文件传输直接把文件往这里拖,然后去跟,根目录找就行了。然后进行文件解压tar -xzvf...
文章浏览阅读299次。web前端页面性能优化为了提高页面的加载速度,让用户有更好的体验,前端网站的性能优化是非常有必要的。优化的方式有以下几种:一、 编辑html的时候注意语义结构化 结构语义化:根据内容的结构,选择合适的标签,以便于开发者阅读和写出更优雅的代码,同时让浏览器的爬虫和机器很好地解析。 结构语义化的优点包括: 1. 在页面没有css或者css还未加载出来的时候,页面也能呈..._语义化结构能提高网页加载速度吗
文章浏览阅读2w次,点赞12次,收藏74次。网络类型简单的分为5种局域网(LAN) 城域网(MAN) 广域网(WAN) 个域网(PAN) 无线网络一、局域网(LAN)1.概念:局域网是指局限于一个地点、一栋建筑或一组建筑的网络2.组成:由多种组件构成:比如台式机、打印机、服务器以及其他存储设备3.特点所有的主机地址都落在一个单一连续的地址范围内 局域网不包含路由器,通常由单一的组织者进行管理 局域网内的通信..._城域网
文章浏览阅读6.3k次,点赞8次,收藏94次。本文讲解如何在虚拟机上安装Kali Linux,希望对大家有所帮助。准备:一台电脑,VMware(VMware安装教程)一、下载系统镜像文件1.首先下载系统镜像,进入kali官网,在Downloads中选择Download Kali Linux,如下图所示。2.根据电脑配置选择合适的版本,在这里我选择的是64位版本,点击HTTP下载镜像文件。二、创建新的虚拟机1.打开VMware Workstation,创建新的虚拟机,我们使用自定义的配置方法。2.导入系统镜像文件。3.选择客户机_gns3路由连接 本地kali虚拟机
文章浏览阅读1.1k次。优质回答 回答者:韬光养晦AA在开始菜单选择控制面板选项进入;在控制面板设置界面选择“系统与安全”;在系统与安全界面选择“更改计算机睡眠时间”;在更改睡眠时间页面,将电源接通时的睡眠时间修改为从不;修改设置后,点击保存修改按钮完成所有操作,电脑就不会休眠了。-----------------------------------------------------------------回答者:辜月..._电脑怎么设置关机不是休眠
文章浏览阅读537次。private fun convertViewToBitmap(view: View): Bitmap { view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFI..._android 多个imageview变成一张图片
文章浏览阅读3.6k次。学习了jQuery选择器,下面给大家一个关于选择器的例子,注释很详细,大家可以自己体会。 Title .tr1{background-color: #FF9933;} $(function(){ //$("#tb tr")--选择id为tb的table,再选择该table的行tr_jqgrrid table 修改鼠标放上去的背景颜色
文章浏览阅读1w次,点赞5次,收藏33次。Vue CLI安装的详细步骤为了以后安装方便,写一个具体的步骤。1.首先,打开vue官网,在生态系统的工具里找到Vue CLI,点击安装,先全局安装,直接打开cmd命令,执行以下命令。(我选的第一个)2.执行完成后,再执行这个命令,查看版本。3.如果上面两个都成功了,点击创建一个项目,执行以下命令。如何创建这个项目呢?首先,我们将项目创建在D盘或桌面,然后打开目录,在这个位置敲cmd命令,定位到当前的目录下。注意,一定不要在其他位置随便创建项目。4.再执行以下这个命令,hello-word是你_如何安装vuecli
文章浏览阅读484次。JavaScript 垃圾回收机制_javascript 有垃圾回收机制
文章浏览阅读111次。上传<style type="text/css"> /*文件上传 控件*/ .upload{position:relative; display:inline-block; height:33px;line-height:33px; overflow:hidden;vertical-align:middle; cursor:pointer;} .uploa..._kendodialog 上传附件
文章浏览阅读2.5k次。public static int calK(int n, int k) { if (k > n) { return 0; } int target = 1; for (int i = 2; i <= k; i++) { target = next(target, n..._长度为n的第k个排列 1,2,3,...,n 的字典序第k 小的排列。