社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

狗熊会 • 5 年前 • 423 次点击  


大家好,基于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
 
423 次点击