| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 动手学数据分析-Task01:数据加载及探索性数据分析 -> 正文阅读 |
|
[Python知识库]动手学数据分析-Task01:数据加载及探索性数据分析 |
本学习笔记为Datewhale-7月组队学习-动手学数据分析的学习内容,学习链接为:https://github.com/datawhalechina/hands-on-data-analysis 前言从这篇博文开始,我们将会一起学习如何用python进行数据分析。本次学习将会通过kaggle上泰坦尼克的实例进行学习。这里有两份资料: 教材《Python for Data Analysis》和 baidu.com & google.com(善用搜索引擎) 一、学习知识点概要Task01:数据加载及探索性数据分析 知识点: 二、学习内容(一)数据载入及初步观察1. 数据加载数据集下载 https://www.kaggle.com/c/titanic/overview (1)导入numpy和pandas
(2)载入数据使用相对路径载入数据
【提示】相对路径载入报错时,尝试使用os.getcwd()查看当前工作目录。 使用绝对路径载入数据
数据输出
两种方法得到的数据相同,如下: (3)逐块读取数据每1000行为一个数据模块,逐块读取
(4)更改表头和索引将表头改成中文,索引改为乘客ID 读取时直接处理列名
【思考】所谓将表头改为中文其中一个思路是:将英文列名表头替换成中文。还有其他的方法吗? 读取后修改列名
加之rename函数,用字典的形式替换式的修改
2. 初步观察导入数据后,你可能要对数据的整体结构和样例进行概览,比如说,数据大小、有多少列,各列都是什么格式的,是否包含null等 (1)查看数据的基本信息
(2)观察表格数据观察表格前十行:
观察表格后15行:
(3)判断数据是否为空判断数据是否为空,为空的地方返回True,其余地方返回False
【思考】上面的操作都是数据分析中对于数据本身的观察,对于一个数据,还可以从哪些方面来观察?找找答案,这个将对下面的数据分析有很大的帮助 还可以对数据的平均值、方差、标准差、最大最小值等隐藏在数据中的信息进行观察 3. 保存数据将你加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csv
(二)pandas基础1. 数据类型pandas中有两个数据类型DateFrame和Series (1)数据类型Series
(2)数据类型DateFrame
2. 查看数据(1)查看每列的名称
(2)查看"Cabin"这列的所有值法一:
法二:
(3)隐藏列元素将[‘PassengerId’,‘Name’,‘Age’,‘Ticket’]这几个列元素隐藏,只观察其他几个列元素
3. 删除多余列(1)加载文件"test_1.csv",然后对比"train.csv"
(2)观察发现test_1.csv有一列是多余的,将多余的列删去
【思考】还有其他的删除多余的列的方式吗?
具体查看此链接http://www.361way.com/pandas-del-drop/6151.html 4. 筛选数据(1)我们以"Age"为筛选条件,显示年龄在10岁以下的乘客信息。
(2) 以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage
5. 显示特定数据重置索引
【思考】这个reset_index()函数的作用是什么?如果不用这个函数,下面的任务会出现什么情况? reset_index()函数的作用是重置索引,因为前面筛选了数据,所以midage的索引和行数此时并不是对应的,如果不使用reset_index()函数,显示的就不是midage数据中的第100行,而是df数据的第100行。具体函数作用可点击此链接查看https://www.cnblogs.com/keye/p/11229863.html 显示midage数据中第100行"Pclass"和"Sex"的数据
使用iloc方法显示midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据
【思考】对比iloc和loc的异同 loc——通过行标签索引行数据 (三)探索性数据分析1.排序(1)对示例数据进行排序,要求升序
可以看到sort_values这个函数中by参数指向要排列的列,ascending参数指向排序的方式(升序还是降序) (2)总结其他排序方式让行索引升序排序:
(3)对泰坦尼克号数据进行排列按票价和年龄两列进行综合排序(降序排列)
2. 利用Pandas进行算术计算(1)计算两个DataFrame数据相加结果
【提醒】两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值NaN。 (2)计算出在船上最大的家族人数
3. Pandas describe()函数(1)查看数据基本统计信息
(2)观察泰坦尼克号数据集的基本统计数据票价
【思考】从上面数据我们可以看出, 一共有891个票价数据, 平均值约为:32.20, 标准差约为49.69,说明票价波动特别大, 25%的人的票价是低于7.91的,50%的人的票价低于14.45,75%的人的票价低于31.00, 票价最大值约为512.33,最小值为0。 父母子女个数
三、学习问题与解答问题一:绝对路径与相对路径? 问题二:知道数据加载的方法后,试试pd.read_csv()和pd.read_table()的不同,如果想让他们效果一样,需要怎么做?了解一下’.tsv’和’.csv’的不同,如何加载这两个数据集?
指定分隔符,可以使pd.read_csv()和pd.read_table()效果一样
TSV文件和CSV的文件的区别是:前者使用\t作为分隔符,后者使用,作为分隔符。
问题三:什么是逐块读取?为什么要逐块读取呢?chunker(数据块)是什么类型? read_csv 和 read_table 有一个 chunksize 参数,用以指定一个块大小(每次读取多少行),返回一个可迭代的 TextFileReader 对象。 问题三:对比iloc和loc的异同 问题四:reset_index()函数的作用是什么?如果不用这个函数,下面的任务会出现什么情况? 四、学习思考与总结本次学习,学会了如何进行数据加载及探索性数据分析。 获得一个要分析的数据,要学会如何加载数据,查看数据,然后学习Pandas的一些基础操作,最后开始尝试探索性的数据分析。通过泰坦尼克号数据的实例,解决过程中出现的各种问题,加深了对pandas指令的印象。 加载的数据是所有工作的第一步,我们的工作会接触到不同的数据格式(eg:.csv;.tsv;.xlsx),但是加载和处理数据方法和思路都是一样的。在以后工作和做项目的过程中,遇到之前没有碰到的问题,要多多查资料,使用google和百度等,了解业务逻辑,明白输入和输出是什么。 希望大家可以互相交流、共同学习,如果发现博文中有错的或不解的,欢迎留言或私聊交流~ 五、参考文章[1]https://github.com/datawhalechina/hands-on-data-analysis |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:45:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |