python函数判断空值 Python 判断为空

python none和null的区别

Python中的None与 NULL(即空字符)的区别

成都创新互联是专业的淮上网站建设公司,淮上接单;提供成都网站建设、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行淮上网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

1、是不同的一种数据类型

表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

你可以将None赋值给任何变量,也可以将任何变量赋值给一个None值得对象

2、判断的时候 均是False

3、属性不同

使用dir()函数返回参数的属性、方法列表。如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。

python中如何将表中的数据做成一张表,然后再从中取出数据?

第一部分是生成数据表,常见的生成方法有两种,第一种是导入外部数据,第二种是直接写入数据。 Excel 中的文件菜单中提供了获取外部数据的功能,支持数据库和文本文件和页面的多种数据源导入。

获取外部数据

python 支持从多种类型的数据导入。在开始使用 python 进行数据导入前需要先导入 pandas 库,为了方便起见,我们也同时导入 numpy 库。

1 import numpy as np

2 import pandas as pd

导入数据表

下面分别是从 excel 和 csv 格式文件导入数据并创建数据表的方法。代码是最简模式,里面有很多可选参数设置,例如列名称,索引列,数据格式等等。感兴趣的朋友可以参考 pandas 的

官方文档。

1 df=pd.DataFrame(pd.read_csv(‘name.csv’,header=1))

2 df=pd.DataFrame(pd.read_excel(‘name.xlsx’))

创建数据表

另一种方法是通过直接写入数据来生成数据表,excel 中直接在单元格中输入数据就可以,python 中通过下面的代码来实现。生成数据表的函数是 pandas 库中的 DateFrame 函数,数据表一共有 6 行数据,每行有 6 个字段。在数据中我们特意设置了一些 NA 值和有问题的字段,例如包含空格等。后面将在数据清洗步骤进行处理。后面我们将统一以 DataFrame 的简称 df 来命名数据表。

1 df = pd.DataFrame({‘id’:[1001,1002,1003,1004,1005,1006],

2 ‘date’:pd.date_range(‘20130102’, periods=6),

3 ‘city’:['Beijing ', ‘SH’, ’ guangzhou ', ‘Shenzhen’, ‘shanghai’, 'BEIJING '],

4 ‘age’:[23,44,54,32,34,32],

5 ‘category’:[‘100-A’,‘100-B’,‘110-A’,‘110-C’,‘210-A’,‘130-F’],

6 ‘price’:[1200,np.nan,2133,5433,np.nan,4432]},

7 columns =[‘id’,‘date’,‘city’,‘category’,‘age’,‘price’])

这是刚刚创建的数据表,我们没有设置索引列,price 字段中包含有 NA 值,city 字段中还包含了一些脏数据。

数据表检查

python 中处理的数据量通常会比较大,所以就需要我们对数据表进行检查。比如我们之前的文章中介绍的纽约出租车数据和 Citibike 的骑行数据,数据量都在千万级,我们无法一目了然的了解数据表的整体情况,必须要通过一些方法来获得数据表的关键信息。数据表检查的另一个目的是了解数据的概况,例如整个数据表的大小,所占空间,数据格式,是否有空值和重复项和具体的数据内容。为后面的清洗和预处理做好准备。

数据维度(行列)

Excel 中可以通过 CTRL 向下的光标键,和 CTRL 向右的光标键来查看行号和列号。Python 中使用 shape 函数来查看数据表的维度,也就是行数和列数,函数返回的结果(6,6)表示数据表有 6 行,6 列。下面是具体的代码。

1 #查看数据表的维度

2 df.shape

3 (6, 6)

数据表信息

使用 info 函数查看数据表的整体信息,这里返回的信息比较多,包括数据维度,列名称,数据格式和所占空间等信息。

1 #数据表信息

2 df.info()

4 class ‘pandas.core.frame.DataFrame’

5 RangeIndex: 6 entries, 0 to 5

6 Data columns (total 6 columns):

7 id 6 non-null int64

8 date 6 non-null datetime64[ns]

9 city 6 non-null object

10 category 6 non-null object

11 age 6 non-null int64

12 price 4 non-null float64

13 dtypes: datetime64ns, float64(1), int64(2), object(2)

14 memory usage: 368.0 bytes

查看数据格式

Excel 中通过选中单元格并查看开始菜单中的数值类型来判断数据的格式。Python 中使用 dtypes 函数来返回数据格式。

Dtypes 是一个查看数据格式的函数,可以一次性查看数据表中所有数据的格式,也可以指定一列来单独查看。

1#查看数据表各列格式

2df.dtypes

3

4id int64

5date datetime64[ns]

6city object

7category object

8age int64

9price float64

10dtype: object

11

12#查看单列格式

13df[‘B’].dtype

14

15dtype(‘int64’)

查看空值

Excel 中查看空值的方法是使用“定位条件”功能对数据表中的空值进行定位。“定位条件”在“开始”目录下的“查找和选择”目录中。

Isnull 是 Python 中检验空值的函数,返回的结果是逻辑值,包含空值返回 True,不包含则返回 False。可以对整个数据表进行检查,也可以单独对某一列进行空值检查。

df_isnull

1#检查特定列空值

2df[‘price’].isnull()

3

40 False

51 True

62 False

73 False

84 True

95 False

10Name: price, dtype: bool

查看唯一值

Excel 中查看唯一值的方法是使用“条件格式”对唯一值进行颜色标记。Python 中使用 unique 函数查看唯一值。

Unique 是查看唯一值的函数,只能对数据表中的特定列进行检查。下面是代码,返回的结果是该列中的唯一值。类似与 Excel 中删除重复项后的结果。

1 #查看 city 列中的唯一值

2 df[‘city’].unique()34array(['Beijing ', ‘SH’, ’ guangzhou ', ‘Shenzhen’, ‘shanghai’, 'BEIJING '], dtype=object)

查看数据表数值

Python 中的 Values 函数用来查看数据表中的数值。以数组的形式返回,不包含表头信息。

1#查看数据表的值

2df.values

3

4array([[1001, Timestamp(‘2013-01-02 00:00:00’), 'Beijing ', ‘100-A’, 23,

5 1200.0],

6 [1002, Timestamp(‘2013-01-03 00:00:00’), ‘SH’, ‘100-B’, 44, nan],

7 [1003, Timestamp(‘2013-01-04 00:00:00’), ’ guangzhou ', ‘110-A’, 54,

8 2133.0],

9 [1004, Timestamp(‘2013-01-05 00:00:00’), ‘Shenzhen’, ‘110-C’, 32,

10 5433.0],

11 [1005, Timestamp(‘2013-01-06 00:00:00’), ‘shanghai’, ‘210-A’, 34,

12 nan],

13 [1006, Timestamp(‘2013-01-07 00:00:00’), 'BEIJING ', ‘130-F’, 32,

14 4432.0]], dtype=object)

查看列名称

Colums 函数用来单独查看数据表中的列名称。

1 #查看列名称

2 df.columns

3

4 Index([‘id’, ‘date’, ‘city’, ‘category’, ‘age’, ‘price’], dtype=‘object’)

查看前 10 行数据

Head 函数用来查看数据表中的前 N 行数据,默认 head()显示前 10 行数据,可以自己设置参数值来确定查看的行数。下面的代码中设置查看前 3 行的数据。

1#查看前 3 行数据``df.head(``3``)

Tail 行数与 head 函数相反,用来查看数据表中后 N 行的数据,默认 tail()显示后 10 行数据,可以自己设置参数值来确定查看的行数。下面的代码中设置查看后 3 行的数据。

1#查看最后 3 行df.tail(3)

python检查是否有缺失值

统计data里每一列是否有空值:

data.isnull().any()

统计data里每一列空值的个数:

data.isnull().any().sum()

但是有的时候,明明有空值却统计不出来。

最近我遇到的数据,空值的填充是null,这个需要转化一下才可以用上面的函数。

data = data.replace('null',np.NaN)

然后你再继续用data.isnull().any(),ata.isnull().any().sum()就没问题了。

如果这么做,你的问题还没解决,查看你的缺失值的填充是什么,用np.NaN替代。、

另外的方法:

np.any(np.isnan(data))

np.all(np.isfinite(data))

如何判断python函数返回的是否是空

可以直接把函数放到if后面当作条件,如果为空的话判断结果是false,例如:

def test():

return None

if test():

print True

else:

print False

python怎么判断读取的是空行

空行一般指的是只有空白字符的行,或者是空字符串的行。即仅包含空格,\t(制表符),\n(换行符)。

python中字符串有个函数是strip()即删除头尾的特定字符的函数,当不传参数是表示为删除空白字符。因此可以用这个函数对字符串使用,当删除空白字符后是空字符串,那么这行就是空行。代码如下。

astr='\t\n\t\n'

print(astr)

if astr.strip()=='':

print('this is a blank string')不明白可追问。

像Excel一样使用Python(一)

在进行数据处理时,如果数据简单,数量不多,excel是大家的首选。但是当数据众多,类型复杂,需要灵活地显示切片、进行索引、以及排序时,python会更加方便。借助python中的numpy和pandas库,它能快速完成各种任务,包括数据的创建、检查、清洗、预处理、提取、筛选、汇总、统计等。接下来几篇文章,将以excel为参照,介绍python中数据的处理。

提到pandas,那就不得不提两类重要的数据结构,Series和DataFrame,这两类数据结构都是建立在numpy的数组array基础上。与array相比,Series是一个一维的数据集,但是每个数据元素都带有一个索引,有点类似于字典。而DataFrame在数组的基础上,增加了行索引和列索引,类似于Series的字典,或者说是一个列表集。

所以在数据处理前,要安装好numpy , pandas。接下来就看看如何完成一套完整的数据操作。

创建数据表的方法分两种,分别是从外部导入数据,以及直接写入数据。

在python中,也可外部导入xlsx格式文件,使用read_excel()函数:

import pandas as pd

from pandas import DataFrame,Series

data=DataFrame(pd.read_excel('c:/python27/test.xlsx'))

print data

输出:

Gene Size Function

0 arx1 411 NaN

1 arx2 550 monooxygenase

2 arx3 405 aminotransferase

……

即:调用pandas中read_excel属性,来读取文件test.xlsx,并转换成DataFrame格式,赋给变量data。在每一行后,自动分了一个索引值。除了excel,还支持以下格式文件的导入和写入:

Python写入的方法有很多,但还是不如excel方便。常用的例如使用相等长度的字典或numpy数组来创建:

data1 = DataFrame(

{'Gene':['arx1','arx2','arx3'],

'Size':[411,550,405],

'Func':[np.NaN,'monooxygenase','aminotransferase ']})

print data1

输出

Func Gene Size

0 NaN arx1 411

1 monooxyg arx2 550

2 amino arx3 405

分配一个行索引后,自动排序并输出。

在python中,可以使用info()函数查看整个数据的详细信息。

print data.info()

输出

RangeIndex: 7 entries, 0 to 6

Data columns (total 3 columns):

Gene 7 non-null object

Size 7 non-null int64

Function 5 non-null object

dtypes: int64(1), object(2)

memory usage: 240.0+ bytes

None

此外,还可以通过shape, column, index, values, dtypes等函数来查看数据维度、行列组成、所有的值、 数据类型:

print data1.shape

print data1.index

print data1.columns

print data1.dtypes

输出

(3, 3)

RangeIndex(start=0, stop=3, step=1)

Index([u'Func', u'Gene', u'Size'], dtype='object')

Func object

Gene object

Size int64

dtype: object

在excel中可以按“F5”,在“定位条件”中选择“空值”,选中后,输入替换信息,再按“Ctrl+Enter”即可完成替换。

在python中,使用函数 isnull 和 notnull 来检测数据丢失, 包含空值返回True,不包含则返回False。

pd.isnull(data1)

pd.notnull(data1)

也可以使用函数的实例方法,以及加入参数,对某一列进行检查:

print data1['Func'].isnull()

输出

Func Gene Size

0 True False False

1 False False False

2 False False False

再使用fillna对空值进行填充:

data.fillna(value=0)

#用0来填充空值

data['Size'].fillna(data1['Size'].mean())

#用data1中Size列的平均值来填充空值

data['Func']=data['Func'].map(str.strip)

#清理Func列中存在的空格

Excel中可以按“Ctrl+F”,可调出替换对话框,替换相应数据。

Python中,使用replace函数替换:

data['Func'].replace('monooxygenase', 'oxidase')

将Func列中的'monooxygenase'替换成'oxidase'。

Excel中,通过“数据-筛选-高级”可以选择性地看某一列的唯一值。

Python中,使用unique函数查看:

print data['Func'].unique()

输出

[nan u'monooxygenase' u'aminotransferase' u'methyltransferase']

Excel中,通过UPPER、LOWER、PROPER等函数来变成大写、小写、首字母大写。

Python中也有同名函数:

data1['Gene'].str.lower()

Excel中可以通过“数据-删除重复项”来去除重复值。

Python中,可以通过drop_duplicates函数删除重复值:

print data['Func'].drop_duplicates()

输出

0 NaN

1 monooxygenase

2 aminotransferase

3 methyltransferase

Name: Func, dtype: object

还可以设置“ keep=’last’ ”参数,后出现的被保留,先出现的被删除:

print data['Func'].drop_duplicates(keep='last')

输出

2 aminotransferase

3 methyltransferase

6 monooxygenase

8 NaN

Name: Func, dtype: object

内容参考:

Python For Data Analysis

蓝鲸网站分析博客,作者蓝鲸(王彦平)


分享名称:python函数判断空值 Python 判断为空
转载来于:http://hbruida.cn/article/highsc.html