# 第一章:数据载入及初步观察##  载入数据### 导入numpy和pandasimport pandas as pd
import numpy as npimport os
os.getcwd()        #查看当前工作目录的路径
#os.chdir()         #改变当前工作目录到指定的路径### 载入数据train = pd.read_csv('./train.csv',sep =',')
test = pd.read_csv(os.path.abspath('./test.csv'),sep =',')
trainimport os
os.path.abspath('./test.csv') #查询绝对路径#### pd.read_csv()和pd.read_table()的不同pd.read_table('./train.csv')#table默认分隔符是制表符pd.read_table('./train.csv',sep=',') #csv默认分隔符是','#### '.tsv'和'.csv'的不同TSV与CSV的区别:
1)从名称上即可知道,TSV是用制表符(Tab,'\t')作为字段值的分隔符;CSV是用半角逗号(',')作为字段值的分隔符;
2)IANA规定的标准TSV格式,字段值之中是不允许出现制表符的。Python对TSV文件的支持:Python的csv模块准确的讲应该叫做dsv模块,因为它实际上是支持范式的分隔符分隔值文件(DSV,delimiter-separated values)的。delimiter参数值默认为半角逗号,即默认将被处理文件视为CSV。当delimiter='\t'时,被处理文件就是TSV。### 每1000行为一个数据模块,逐块读取#### 什么是逐块读取?为什么要逐块读取呢?逐块读取:将数据分成小块按块读入,得到的对象指向了多个分块对象,但并没有将实际数据先读入,而是在提取数据时才将数据提取进来。原因:在处理很⼤的⽂件时,可将大文件拆分成小块按块读入后,这样可减少内存的存储与计算资源。数据的处理和清洗经常使用分块的方式处理,这能大大降低内存的使用量,但相比会更耗时一些。#### chunker(数据块)是什么类型?用for循环打印出来出处具体的样子是什么?chunker = pd.read_csv('./train.csv',chunksize=100)
for piece in chunker:print(piece)
print(type(piece))  #设置chunksize参数,来控制每次迭代数据的大小#chunker 数据类型为'pandas.core.frame.DataFrame'### 将表头改成中文,索引改为乘客ID [对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据]
* PassengerId => 乘客ID
* Survived => 是否幸存
* Pclass => 乘客等级(1/2/3等舱位)
* Name => 乘客姓名
* Sex => 性别
* Age => 年龄
* SibSp => 堂兄弟/妹个数
* Parch => 父母与小孩个数
* Ticket => 船票信息
* Fare => 票价
* Cabin => 客舱
* Embarked => 登船港口train= pd.read_csv('./train.csv', names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
df.head()【思考】所谓将表头改为中文其中一个思路是:将英文列名表头替换成中文。还有其他的方法吗?方法一:通过DataFrame.columns 类的自身属性修改#1) 暴力修改(想改该表的列顺序要对应)
train.columns=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口']
train#2) strip 方法
#strip()方法用于移除字符串头尾指定的字母(默认为空格或换行符)或字符序列train.cloumns=train.columns.str.strip('')#3) lambda表达式
# map()会根据提供的函数对指定的序列做映射。以参数序列中的每个元素调用function函数返回的新列表
lambda x:x[1:]表示取第二个元素,因此列表名$a、$b 等只取出a、b
df.columns=df.columns.map(lambda x:x[1:])方法二:通过DataFramerename函数修改#1) 暴力修改(可以只修改部分列名)
df.rename(columns={'Sa':'a','$b':'b','Sc':'c','$d':'d','Se':'e'}, inplace=True)#2) lambda表达式
#调用replace数,把$替换为空。
df.rename(columns=lambda x:x.replace('$',''),inplace=True)## 初步观察
导入数据后,你可能要对数据的整体结构和样例进行概览,比如说,数据大小、有多少列,各列都是什么格式的,是否包含null等### 任务一:查看数据的基本信息train.info()### 任务二:观察表格前10行的数据和后15行的数据train.head(10)train.tail(15)### 任务三:判断数据是否为空,为空的地方返回True,其余地方返回Falsetrain.isnull().head()【思考】对于一个数据,还可以从哪些方面来观察?找找答案,这个将对下面的数据分析有很大的帮助## 保存数据### 任务一:将你加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csvtrain.to_csv('train_chinese.csv',encoding='GBK') #当定义为utf-8时,是乱码 【总结】数据的加载以及入门,接下来就要接触数据本身的运算,我们将主要掌握numpy和pandas在工作和项目场景的运用。## 知道你的数据叫什么### 任务一:pandas中有两个数据类型DateFrame和Series,通过查找简单了解他们。然后自己写一个关于这两个数据类型的小例子												

tatanic第一章:数据载入及初步观察相关推荐

  1. 第一章:第一节数据载入及初步观察-课程

    复习:这门课程得主要目的是通过真实的数据,以实战的方式了解数据分析的流程和熟悉数据分析python的基本操作.知道了课程的目的之后,我们接下来我们要正式的开始数据分析的实战教学,完成kaggle上泰坦 ...

  2. 数据分析-第一章:数据载入及初步观察

    复习: 这门课程得主要目的是通过真实的数据,以实战的方式了解数据分析的流程和熟悉数据分析python的基本操作.知道了课程的目的之后,我们接下来我们要正式的开始数据分析的实战教学,完成kaggle上泰 ...

  3. Task01:数据载入及初步观察

    第一章 1.数据载入及初步观察 1.1载入数据 1.1.1导入numpy和pandas 1.1.2载入数据 1.1.3逐块读取 1.1.4修改表头.索引 1.2初步观察 1.2.1查看数据的基本信息 ...

  4. 动手学数据分析:数据载入与初步观察

    数据载入及初步观察 1 第一章:数据载入及初步观察 1.1 载入数据 1.1.1 任务一:导入numpy和pandas 1.1.2 任务二:载入数据 1.1.3 任务三:每1000行为一个数据模块,逐 ...

  5. 数据载入及初步观察 + 探索性数据分析 —— 泰坦尼克任务

    第一章:数据载入及初步观察 + 探索性数据分析 实验代码 1.1 载入数据 1.1.1 任务一:导入numpy和pandas # 导入numpy和pandas import pandas as pd ...

  6. 泰坦尼克号任务-数据载入及初步观察,探索性分析

    数据载入及初步观察,探索性分析 载入和观察 相对路径和绝对路径 查看当前工作目录使用os.getcwd(),改变当前工作目录os.chdir(路径),获得当前目录的绝对路径命令os.path.absp ...

  7. Datawhale---动手学数据分析---第一章:数据载入及初步观察(泰坦尼克的任务)

    1.1 载入数据 数据集下载 Titanic - Machine Learning from Disaster | Kaggle 1.1.1 任务一:导入numpy和pandas import num ...

  8. 【TL第二期】动手学数据分析-第一章 数据基本操作

    文章目录 第一章 第一节 数据载入与初步观察 0 导库 1 载入数据 2 查看数据基本信息 第二节 pandas基础 1 数据类型DataFrame 和 Series 2 对文件数据的基本操作 3 数 ...

  9. 第一章 数据与大数据

    大数据导论 昨天出去玩了回来之后实在是太困太困了,早上看了一些内容,在晚上的时候电脑都准备打开来写写,但是就完全睁不开眼睛了,今天来补一下.这两次看的都还是一些概念性的问题,没有关于技术的,实在是有点 ...

最新文章

  1. IBM的“认知计算时代”
  2. SBULL块设备驱动程序分析
  3. UVa11292 - Dragon of Loowater(贪心)
  4. 设计模式学习笔记二:简单工厂模式
  5. JavaScript调用服务器事件
  6. SAP WebClient UI界面元素ID生成的逻辑分析
  7. Nginx动静分离实现负载均衡
  8. pyecharts简单使用
  9. StringIO类的用途
  10. 基于51单片机的函数信号发生器
  11. atitit 技术选型之道. attilax著 艾龙著 1. 标准 2 1.1. 符合趋势度 2 1.2. 简单易用 2 1.3. 文档丰富度 2 1.4. 下载便利性 2 1.5. 性能 2 1.
  12. 谋定而后动,理想不相信热血
  13. 数据库中主键、超键、候选键、外键是什么?
  14. 【UE5 C++进阶 01】Nanite基础
  15. 蓝牙技术|蓝牙(BLE)低功耗你所不了解的特性
  16. 微信小程序下拉加载更多 带后台 解决加载的内容 是新加载的view中最后一个view
  17. 苹果iPad怎么录屏?简单易懂,1分钟学会
  18. 将TTF格式文字转换成eot格式
  19. 【解决方案】AI视频结构化智能安防平台EasyCVR保护小区居民安全智能监控方案
  20. 命令行 笔记本键盘禁用_如何在 Ubuntu 20.04 上禁用坞站(dock) | Linux 中国

热门文章

  1. linux系统光标变粗了_linux终端光标变粗
  2. Linux小技巧,取消cp、mv覆盖提示方法
  3. css笔记:用css定义一个无边框的按钮
  4. 部分网页打不开,有的浏览器连不上网的解决办法之一
  5. Python 列表详解
  6. tf.one_hot()使用
  7. BroadcastReceiver中onReceive()方法中需要注意什么
  8. Java-并发和并行的区别
  9. 计算机打印机 报废处理流程图,应急处置故障处理流程图(18项)分解.doc
  10. before的用法java_Java LocalTime isBefore()用法及代码示例