本学习笔记为Datewhale-7月组队学习-动手学数据分析的学习内容,学习链接为:https://github.com/datawhalechina/hands-on-data-analysis
pandas使用:
数据载入及初步观察
1.数据加载
数据集下载:https://www.kaggle.com/c/titanic/overview
数据集来自kaggle上泰坦尼克的任务
这里有两份资料: 教材《Python for Data Analysis》和 baidu.com & google.com
导入numpy和pandas
import numpy as np
import pandas as pd
载入数据
数据格式.csv;.tsv;.xlsx
使用相对路径载入数据
相对路径载入报错时,可以使用os.getcwd()
查看当前工作目录
使用绝对路径载入数据
路径是/
不是\
试试pd.read_csv()
和 pd.read_table()
的不同,如果想让他们效果一样,需要怎么做?
read_table返回一个DataFrame,是二维的,会像一棋盘那样标识数据
了解一下.tsv
和.csv
的不同,如何加载这两个数据集?
每1000行为一个数据模块,逐块读取
什么是逐块读取?为什么要逐块读取呢?
chunker= pd.read_csv('train.csv',chunksize=500)
读取到第500行,要通过for循环才能打印,数据块类型:pandas.io.parsers.TextFileReader
,查看pandas数据类型:df.dtypes
,用for循环打印出来
将表头改成中文,索引改为乘客ID
对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据
df = pd.read_csv('./train.csv', names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
print(df.head)
df = pd.read_csv("train.csv")
df.columns=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口']
print(df.head)
df.columns 列名称
2.初步观察
查看数据的基本信息
数据表基本信息(维度、列名称、数据格式、所占空间等)
print(df.info())
维度查看
df.shape
11列 891行类型是int float object
不过我感觉这东西excel打开看一下不就好了,也没必要非用这个搞
观察表格前10行的数据和后15行的数据
print(df.head(10))
print(df.tail(15))
判断数据是否为空,为空的地方返回True,其余地方返回False
print(df.isnull())
.head()
默认前5行数据
只想看前几行可以用print(df.isnull().head())
【总结】上面的操作都是数据分析中对于数据本身的观察
【思考】对于一个数据,还可以从平均值、方差、标准差、最大最小值观察
df.sum() #返回所有列的求和值
df.mean()#返回所有列的均值
df.corr()#返回列与列之间的相关系数
3.保存数据
将你加载并做出改变的数据,在工作目录下保存为一个新文件train_chinese.csv
df.to_csv('train_chinese.csv')
Pandas基础
1.数据类型
pandas中有两个数据类型DateFrame和Series
sdata = {'a': ['one', 'two', 'three', 'four'],'b': [1.0, 2.0, 3.0, 4.0 ],'c': [1, 2, 3, 4,]}
(1)数据类型Series
example_1 = pd.Series(sdata)
print(example_1)
(2)数据类型DateFrame
example_2 = pd.DataFrame(sdata)
print(example_2)
感觉像是列表一样
2.查看数据
(1)查看每列的名称
(2)查看"Cabin"这列的所有值
(3)隐藏列元素
3.删除多余列
4.筛选数据
5.显示特定数据
探索性数据分析
1.排序
(1)对示例数据进行排序,要求升序
(2)总结其他排序方式
(3)对泰坦尼克号数据进行排列
利用Pandas进行算术计算
(1)计算两个DataFrame数据相加结果
(2)计算出在船上最大的家族人数