Py学习  »  Python

Python数据科学实践 | 数据类型

狗熊会 • 4 年前 • 299 次点击  


大家好,基于Python的数据科学实践课程又到来了,大家尽情学习吧。本期内容主要由程茜与政委联合推出。

在前面我们读取了火锅的团购数据之后,最先做的不是直接就对数据进行分析,而是要了解数据。俗话说,知己知彼,方能百战百胜,所以了解数据就从数据类型与结构开始吧。


基本数据类型


Python有很多数据类型,这里我们将会简要介绍布尔值,整数,浮点数,复数,字符串与时间类型。

1、整数

整数又称为整型,也就是int类型。在Python中,可以直接对整数进行算数运算。整数与数学中定义的整数概念一致。比如1,-2,45687等等。

数据分析中,经常需要知道变量是什么类型才可以进行相应的运算。在Python中有一个type 函数,可以用来查看基本的数据类型。

语法:type(变量名)     用来查看变量的数据类型

1type(200) #返回值int
2type(-1) #返回值int
3type(pow(2,10)) #返回值int,pow(2,10)是2的10次方
4type(True) #返回值bool

看到这里,大家肯定会问,导入一个数据集后,每个数据集有很多个变量,我不能一个一个查看数据类型吧。这里给大家再讲一个函数,dtypes()函数,可以用来查看所有字段的数据类型。继续在coupon这个数据集上使用。

例1




    
1coupon.dtypes

运行结果如下:

图1

可以看到“团购活动ID”“与购买人数”都是整数变量。大家思考一下,“团购活动ID”需要用整数变量来存储吗? 

2、浮点数

简单的说就是带小数点的数字,也就是float型。例如

1type(85.0) #返回值float
2type(4/5) #返回值float

在图2中可以看到,团购价、市场价等都是浮点数。具体来看一个例子,“六婆串串香火锅”团购的团购价“85.0”为浮点数。


图2

3、复数

Python中,复数的虚数部分通过后缀“j”来表示,例如:

例2

112.3+4j #创建复数

还可以使用real和imag函数来查看复数的实部和虚部。

例3

1(3+1j).real #返回值3.0
2(3+1j).imag #返回值1.0

在这里划一下重点:虚部的系数如果是1,也需要写出来哈!不信你可以试试!

4、布尔值

布尔值就是逻辑值,“对”或者“错”,“是”或者“否”。就像人们对火锅的态度只有“爱”或者“不爱”,这就对应了逻辑值True和False。它们的主要用途是进行逻辑运算,所以可以通过“==”,“>”,"

11 == 1 #返回值True
21 > 2 #返回值False
31 != 2 #返回值True
4(1 != 2and (1 == 1#返回值True
5(1 != 2or (1 > 2#返回值False

那么,逻辑运算能在数据分析中帮我们做什么呢?这里咱们回到火锅的例子上。首先,导入coupon_nm数据集。这里如下图可以发现,在coupon中,第一行和第三行的团购名都是“壹分之贰豪华生日派对套餐”。那么一个自然的问题是它们到底是不是同一个团购呢?

图3

解决的办法是通过比对团购ID来确定是不是同一个团购活动,这时候就可以用到布尔运算。

具体操作代码如下:

例4

1coupon.iloc[0,2] == coupon.iloc[2,2] #如果不做特殊说明,本书都假设读者已经导入了需要使用的数据集。

由于二者相等这件事不成立,所以这个布尔运算返回了False。在Python中,利用Pandas模块导入的数据都以数据框(Data Frame)的方式存储。而从数据框中取出某行某列就需要在数据集后加.iloc,并用方括号[ ,]表示行列的位置,行数在前,列数在后。但是要注意Python中从零开始计数,所以coupon.iloc[0,2]表示第一行第三列,coupon.iloc[2,2]表示第三行第三列。这些具体的函数操作都会在后面讲解,这里大家可以先去试着理解布尔运算的用途。

当然,还可以利用布尔值寻找需要的数据。比如,最近大家都很喜欢吃“六婆串串香火锅”,那么如何找到“六婆串串香火锅”的数据呢?大家可以试试下面的方法。

例5

1coupon[coupon['店名']=='六婆串串香火锅']

如图4所示,利用布尔值,一行代码就可以寻找到需要的数据。

图4

布尔数据类型会经常在数据科学的实践中使用,其目的就是通过快速实现简单的逻辑运算来处理数据。

5、字符串类型

5.1

字符串的表示

字符串就是一系列字符,也就是str型。简单来讲,就是用一对单引号(')、双引号(")或三引号(''')括起来的一串字符。比如:''Python分析火锅数据'','Python'等。

例6

1type('六婆串串香火锅'#返回值str

其中,'六婆串串香火锅'是字符串str类型。

5.2

字符串的常用操作


Python提供了5种常用的操作,分别是“+”(字符串拼接)、“*”(复制)、“in”(是否在字符串中),单个索引和切片索引,len(字符串长度)。

例7

1name = '六婆串串香火锅' 
2name*3 #返回值为 '六婆串串香火锅六婆串串香火锅六婆串串香火锅'
3'六婆' in name #返回值为True
4name[0] #返回值为'六'
5name[2:4] #返回值为'串串'
6len(name) #返回值为7

字符串类型的数据其实是通过一种特殊的数据结构列表(list)存储的。更多的理解字符串的例子可以从下面的数据结构的介绍中获得。

6、数据类型转换

数据类型转换在项目实践中经常用到,比如一个火锅店的月销售额是一个字符类型,转换为数字类型才可以进行统计分析,比如计算均值。Python提供了便捷的数据类型转换函数。举例如下表:

表1

火锅数据中的字段“团购活动ID”,Python认为它是数值型。但是,此时客户ID相加减是没有意义的,其本质是字符串。这就需要更改数值型数据为字符型数据。str函数就成功的将第一条数据的ID“38744470”转换成字符串'38744470'。

例8

1ID = coupon.loc[0,'团购活动ID'] 
2ID = str(ID) #转换数据类型
3print(type(ID)) #返回值为str

好了,今天就讲到这里。


作业:请大家导入shops_nm.xlsx数据,查看每个变量的数据类型,并查看商铺中是否有“六婆串串香火锅”的信息。


往期精彩回顾
初步搭建数据科学工作环境

Conda的使用

Spyder入门

Jupyter入门

Markdown

简单读写数据


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36371
 
299 次点击