月光满楼
作者月光满楼·2017-10-12 15:41
数据库管理员·南车青岛四方

从零开始学Python数据分析【1】--数据类型及结构

字数 1913阅读 1727评论 1赞 4

一直想静下心来、花点时间学习Python3这门火爆的高级语言,但总是事与愿违,故只能挤点时间,做到每天进步一点点。从今天开始我把积累的点滴知识与大家做个分享,也欢迎感兴趣的朋友指教与提议。

首先从Python的基础数据类型和数据结构说起,数据类型主要包含三种,分别是数值型、字符型和日期时间型;数据结构主要包含列表、元组和字典。

数据类型

微信图片_20171012153135.jpg

微信图片_20171012153135.jpg

由于日期型和日期时间型比较特殊,我们来单独看一下。一般拿到日期型数据时基本都是字符串表示的,如 '2017-04-24' 和 '2017/04/24 22:09:48' 。该如何将其转换为日期型和日期时间型呢?这里借助datetime模块中的子例程datetime就可以轻松搞定。例如:

微信图片_20171012153152.jpg

微信图片_20171012153152.jpg

  1. 第一个红框表示的是导入datetime模块;
  2. 第二个红框表示使用datetime模块下的子模块datetime函数strptime完成字符串到日期时间型的转换,但奇怪的是,原始数据为日期型的字符串,但转换后成了日期时间型,单后面多了表示时间的部分00:00:00;
  3. 第三个红框:如果你不想保留日期后面的时间部分00:00:00,只需在末尾加上date()方法。

数据类型转换

微信图片_20171012153227.jpg

微信图片_20171012153227.jpg

第一个红框:如果你需要将字符串型的小数转化为整数,必须先将字符串转化为浮点型,然后才可以转化为整数,否则将会报错。

微信图片_20171012153246.jpg

微信图片_20171012153246.jpg

第一个红框:虽然数值12转化为字符串时,打印出来却没有双引号,但通过type函数反馈的数据类型确实是字符串型。

数据结构

列表:是一个可变型的序列,之所以说可变,是因为可以对列表数据类型可以进行增、删、改的操作,而不可变对象则没有这三种操作。
创建一个列表

微信图片_20171012153305.jpg

微信图片_20171012153305.jpg

查:

微信图片_20171012153324.jpg

微信图片_20171012153324.jpg

增:

微信图片_20171012153346.jpg

微信图片_20171012153346.jpg

append方法每次只能在末尾填入一个元素;
extend方法每次在末尾插入多个元;
insert方法可在指定的位置插入一个元素;

删:

微信图片_20171012153402.jpg

微信图片_20171012153402.jpg

pop方法在不指定参数时默认删除末尾元素,也可以指定删除某个位置的元素;
remove方法删除指定的元素值;
clear方法清空列表元素;
del函数删除列表对象;

改:

微信图片_20171012153419.jpg

微信图片_20171012153419.jpg

改,说白了就是通过索引的方式将旧值换成新值

其他列表方法

微信图片_20171012153438.jpg

微信图片_20171012153438.jpg

copy方法复制一个物理对象,而非视图对象;
count方法计数;
index方法返回索引位置;
reverse方法实现元素颠倒;
sort方法排序;

创建一个元组

微信图片_20171012153535.jpg

微信图片_20171012153535.jpg

元组是不可变的序列,故其没有增、删、改的权限。只能进行查询(索引和切片)和一些简单的其他方法。

微信图片_20171012153603.jpg

微信图片_20171012153603.jpg

其他元组方法

微信图片_20171012153618.jpg

微信图片_20171012153618.jpg

由于元组没有copy方法,但如果你就是想复制一个物理对象给新的变量,可以考虑使用copy模块的copy方法。

字典

字典的创建就不是通过上面的中括号[]和圆括号()方法构建了,而是通过花括号{}或dict函数来构造键-值对。

微信图片_20171012153635.jpg

微信图片_20171012153635.jpg

  1. 第一个字典通过花括号构建;
  2. 第二个字典通过dict函数构建;
  3. 第三个构造了一个嵌套的字典;

由于字典也是一个可变对象,故其也有增、删、改的操作,具体如下:

微信图片_20171012153703.jpg

微信图片_20171012153703.jpg

所以,setdefault方法既可以实现查的功能,又可以完成添加键值对的功能。

微信图片_20171012153732.jpg

微信图片_20171012153732.jpg

  1. 第一个红框通过索引的方式增加键值对;
  2. 第二个红框通过setdefault方法增加键值对;
  3. 第三个红框通过update方法增加键值对;

微信图片_20171012153756.jpg

微信图片_20171012153756.jpg

pop方法对指定的键进行删除;
popitem方法每次删除末尾的一个键值对;

微信图片_20171012153815.jpg

微信图片_20171012153815.jpg

字典中更新键对应的值,既可以使用索引的方式,也可以使用update方法,但update方法中的参数一定是一个字典。如果该字典的键在dict3中存在,则操作改的动作,否则完成增加键值对的使命。

其他字典方法

微信图片_20171012153833.jpg

微信图片_20171012153833.jpg

这里需要注意的是,必须使用list函数套在items、keys、values等方法外面,否则不会产生列表结果,而是一个迭代器。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论1 条评论

热心冰块热心冰块项目经理浪潮INSPUR
2022-01-26 22:46
可以写点东西了,不真正动手写,写不会。官方Docs搂一遍,然后就是边写边学边查,有一两周就可以提高工作效率了
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广