数据库
首页 > 数据库> > 【Datawhale】动手学数据分析

【Datawhale】动手学数据分析

作者:互联网

第一章:数据载入及初步观察

载入数据

任务一:导入numpy和pandas

  import numpy as np
  import pandas as pd

任务二:载入数据

  train_data = pd.read_csv("train.csv")
  train_data.head(5)
  train_data = pd.read_table("train.csv")
  train_data.head(5)

这两个读取方式的区别在于read_csv读取的是默认分割符为逗号,而read_csv读取默认分隔符为制表符。

任务三:每1000行为一个数据模块,逐块读取

  chunker = pd.read_csv("train.csv", chunksize = 1000)
  print(type(chunker))

【思考】什么是逐块读取?为什么要逐块读取呢?
答:比如后续遍历,像一个数据迭代器一样方便读取

【提示】大家可以chunker(数据块)是什么类型?用for循环打印出来出处具体的样子是什么?
答:<class 'pandas.io.parsers.TextFileReader'>,for遍历每次打印出来1000行

将表头改成中文

  train_data = pd.read_csv("train.csv", names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID', header=0)
  train_data.head(5)

【思考】所谓将表头改为中文其中一个思路是:将英文列名表头替换成中文。还有其他的方法吗?
答:可以读入后再进行修改

初步观察

任务一:查看数据的基本信息

  train_data.info()
  <class 'pandas.core.frame.DataFrame'>
  Int64Index: 891 entries, 1 to 891
  Data columns (total 11 columns):
  # Column Non-Null Count Dtype
  --- ------ -------------- -----
  0 是否幸存 891 non-null int64
  1 仓位等级 891 non-null int64
  2 姓名 891 non-null object
  3 性别 891 non-null object
  4 年龄 714 non-null float64
  5 兄弟姐妹个数 891 non-null int64
  6 父母子女个数 891 non-null int64
  7 船票信息 891 non-null object
  8 票价 891 non-null float64
  9 客舱 204 non-null object
  10 登船港口 889 non-null object
  dtypes: float64(2), int64(4), object(5)
  memory usage: 83.5+ KB

【提示】有多个函数可以这样做,你可以做一下总结

任务二:观察表格前10行和后15行的数据

  train_data.head(10)
  train_data.tail(15)

任务三:判断数据是否为空,为空的地方返回true,否则返回false

  train_data.isnull().head(10)

【思考】对于一个数据,还可以从哪些方面来观察?找找答案,这个将对下面的数据分析有很大的帮助

答:从分布方面

保存数据

任务一:将你加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csv

  # 注意:不同的操作系统保存下来可能会有乱码。大家可以加入`encoding='GBK' 或者 ’encoding = ’utf-8‘‘`
  train_data.to_csv("train_chinese.csv",encoding='GBK')

知道你的数据叫什么

任务一:pandas中有两个数据类型DateFrame和Series,通过查找简单了解他们。然后自己写一个关于这两个数据类型的小例子

  myself = {"name":"FavoriteStar",'age':18,"gender":"男性"}
  example = pd.Series(myself)
  example
  myself2 = {"爱好":["打篮球",'唱歌','躺平'], "程度":[100, 90, 80]}
  example2 = pd.Series(myself2)
  example2
  爱好 [打篮球, 唱歌, 躺平]
  程度 [100, 90, 80]
  dtype: object

任务二:根据上节课的方法载入"train.csv"文件

  train_data = pd.read_csv("train_chinese.csv",encoding='GBK')
  # 在保存的时候用了GBK,载入就也要用,否则会乱码

任务三:查看DataFrame数据的每列的名称

  train_data.columns
  Index(['乘客ID', '是否幸存', '仓位等级', '姓名', '性别', '年龄', '兄弟姐妹个数', '父母子女个数', '船票信息','票价', '客舱', '登船港口'],dtype='object')
PYTHON 复制 全屏

任务四:查看"Cabin"这列的所有值

  train_data['客舱'].unique()
  train_data.客舱.unique()

任务五:加载文件"test_1.csv",然后对比"train.csv",看看有哪些多出的列,然后将多出的列删除

  test_data = pd.read_csv("test_1.csv")
  test_data_drop = test_data.drop('a',axis = 1)
  test_data.head(5)

标签:数据,载入数据,数据库,操作系统,GBK,DataFrame,
来源: