《动手学数据分析》第一章笔记
在第一章的知识学习中,主要内容在于数据载入、pandas基础、探索性数据分析三小节。
1.相对路径数据载入
df = pd.read_csv('train.csv')
df.head()
绝对路径数据载入(定义path)
由path为途径打开‘train.csv’
os.path.abspath('train.csv')
path = os.path.abspath('train.csv')
df = pd.read_csv(path)
df
绝对路径数据载入(直接读取地址)
os.path.abspath(‘train.csv’)<!--需要前置导入 import os-->
df = pd.read_csv(r'E:\\jupyternotebook\\hands-on-data-analysis-master\\第一单元项目集合\\train.csv')
df
2.逐块读取
一般是文件数据较多时,运用逐块读取来读取其中一部分数据,其中chunksize参数用来控制每次迭代数据的大小。
chunker = pd.read_csv("data.csv",chunksize=100)
3.设置索引
index_col用来指定表格的索引值
header=0(不设置header),数据表的第一行开始值为0。
4.查看数据基本信息
import pandas as pd
import numpy as np
df = pd.read_csv('train.csv')
df.info()<!--打印摘要-->
df.describe()<!--描述性统计信息-->
df.head()
df.tail()
5.判断数据是否为空
isnull()函数可以直接判断每一个数据知否是空值,存在缺失值则返回True,反之False。
import pandas as pd
df = pd.read_csv('train.csv')
df.isnull()
6.保存数据
保存地址看具体需求。
df.to_csv('train_chinese.csv')
7.数据类型DateFrame和Series
**Series:**一种类似于一维数组的对象,是由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成;
**DataFrame:**一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、bull型等),DataFrame有行索引也有列索引。
import pandas as pd
import numpy as np
sdata = pd.Series([1, 2, 3, 4, 5, 6])
print(sdata)
查看DataFrame数据列名称
df.columns
8.删除列/行的方式
del test_1['a']
test_1.head()
删除列:按照列名/列位置删除
df.drop(df.columns[1,2], axis=1)<!--axis=0表示行,axis=1表示列-->
df.drop([PassengerId','Name','Age','Ticket'], axis=1)
df.head()
reset_index () 函数:在数据清洗时,会将带空值的行删除
9.索引:loc VS iloc
iloc基于位置进行索引,主要是整数,也可以用bull数组;loc基于行和列的标签进行索引。
10.数据排序
构建数组的代码(后续计算的基础)
pd.DataFrame() :创建一个DataFrame对象
np.arange(8).reshape((2, 4)) : 生成一个二维数组(2*4),第一列:0,1,2,3 第二列:4,5,6,7
index=['2, 1] :DataFrame 对象的索引列
columns=['d', 'a', 'b', 'c'] :DataFrame 对象的索引行
索引排序:sort_values这个函数中by参数指向要排列的列,ascending参数指向排序的方式;sort_index函数按照列索引的大小排序即axis=1,但ascending=False且inpalce=True(默认值为True表示正序;ascending=False时表示倒序)
data.sort_index()