动手学数据分析之数据加载及探索性数据分析

第一章第一节:数据载入及数据观察

基础知识:

1.导入库:

import pandas/numpy/os...

2.导入数据文件:

pd.read_csv("路径名")

3.大文件分块导入:

利用chunksize参数

4.观察数据:

df.info()

df.describe()

5.空数据返回

df.isnull()

任务: 

1.导入库:

import numpy as np
import pandas as pd

2.导入文件

df = pd.read_csv('D:/hands-on-data-analysis/第一单元项目集合/train.csv',  encoding='cp936')
df.head(3)

注:(1).encoding是通过下列命令得到的(解决编码错误的问题)

with open('D:/hands-on-data-analysis/第一单元项目集合/train.csv') as f:
    print(f)

(2).head函数用法:head(n)表示展示前n行,默认为5.

3.逐块读取:

有时候文件较大, 为了方便读取文件提高效率,常常分块读取文件。

利用chunksize参数:

chunker = pd.read_csv('D:/hands-on-data-analysis/第一单元项目集合/train.csv', chunksize = 1000)

如上所示为1000行1000行的读

4.修改索引:

df = pd.read_csv('D:/hands-on-data-analysis/第一单元项目集合/train.csv', names = ['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'], header = 0)

这种方法是在导入文件时同时修改, 另一种方法是先导入, 再修改,此处不赘述。

5.观察数据:

df.info()

df.describe()

 

观察前n行:

df.head(6)

观察后n行

df.tail()

数据空的地方返回True,其余地方返回False 

df.isnull()

 6.将修改后的文件保存: 

df.to_csv('D:/hands-on-data-analysis/第一单元项目集合/train_chinese1.csv')

第一章第二节 :pandas基础

基础知识:

1.series和dataframe的区别:

 series相当于数组,而dataframe相当于表格。

2.查看DataFrame数据的每列的名称:

df.columns()

3.查看列名为xxx的所有行:

df['xxx']

4.删除指定行:

del df['xxx']或者df.drop('xxx', axis = 1)

5.筛选有用信息:

df[不啦不啦]

1.设置series:

score = {'lifei':90, 'wangming':98, 'lihui':67, 'liuwei':78}
e_1 = pd.Series(score)
e_1

 

2.设置dataframe:

information = {'student':['lifei', 'lifei', 'lifei','wangm', 'wangm'],
              'year':[2018, 2019, 2010, 2019, 2020],
              'weight':[120, 110, 115, 198, 200]}
e_2 = pd.DataFrame(information)
e_2

 

series和dataframe的区别:

 series相当于数组,而dataframe相当于表格。

3.查看DataFrame数据的每列的名称

df.columns

 

 

4.查看列名为Cabin的所有行:

df['Cabin']
df.Cabin

  

5.删除指定列:

df_test = pd.read_csv('D:/hands-on-data-analysis/第一单元项目集合/test_1.csv', encoding='cp936')
del df_test['a']
df_test.head(3)

或者使用drop函数:

df_test.drop('a', axis = 1)
df.head(3)

结果显示一致:

同样地, 因为删除某一列不会影响原数据, 所以可以利用删除某几列来研究剩余几列地特点, 即比如当我们需要研究除['PassengerId','Name','Age','Ticket']这几个列以外的其他几个列元素时, 可以把这几列删除:

df.drop(['PassengerId','Name','Age','Ticket'],axis=1).head(3)

 

6. 筛选有用信息,丢弃无用信息

例如筛选出年龄小于10的数据:

df[df['Age']<10]

 

midage = df[(df['Age']>10)&(df['Age']<50)]
midage.head(3)

 loc用法例:

midage.loc[[100,105,108],['Pclass','Name','Sex']] 

iloc用法例:

midage.iloc[[100,105,108],[2,3,4]]

loc和iloc用法区别很明显:loc是通过名称引用, iloc是通过列数引用。

第一章第三节:探索性数据分析

基础知识:

对某一列进行升序或降序排列:

data.sort_values(by = '', ascending = True/False)

根据行索引进行升序或降序排列:

data.sort_index(ascending = True/False)

根据列索引进行升序或降序排列:

data.sort_index(axis = 1, ascending = True/False)

泰坦尼克号数据集实战:

 已尝试完,很有趣,略。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值