详细查看开源链接:https://github.com/datawhalechina/hands-on-data-analysis
因时间匆忙,本博客记录学习中出现问题方便复习时解决
第一章第一节代码:
#写入代码
import numpy as np
import pandas as pd
import os
#相对路径 载入的是当前根目录下 训练集891*12 测试集891*14 上一级应该是+./这样的形式
#pd.read_csv('train.csv')
pd.read_csv('test_1.csv')
#pd.read_csv('train_chinese.csv')
#得到路径
print(os.getcwd())
data=pd.read_csv('test_1.csv')
data.head(3)
#绝对路径 写上全部的路径 中文会报错所以使用此方式
file=open('/study/hands-on-data-analysis-master/第一单元项目集合/train.csv')
data=pd.read_csv(file)
data.head()
-----------------------------------思考---------------------------
【提示】相对路径载入报错时,尝试使用os.getcwd()查看当前工作目录。 答:引入os包 调用os库内自带的函数,可以了解一下os库
【思考】知道数据加载的方法后,试试pd.read_csv()和pd.read_table()的不同,如果想让他们效果一样,需要怎么做? 使用table读取的是txt文件 了解一下'.tsv'和'.csv'的不同,如何加载这两个数据集? read_table读取的是txt文件
答:使用table读取是把其他的列合并成一列,tsc文件使用tab分割列,csv文件使用 逗号分割列,读取tsv文件: train=pd.read_csv('test.tsv', sep='\t') ,后面可跟一些其他的属性,详情了解pandas手册
【总结】加载的数据是所有工作的第一步,我们的工作会接触到不同的数据格式(eg:.csv;.tsv;.xlsx),但是加载的方法和思路都是一样的,在以后工作和做项目的过程中,遇到之前没有碰到的问题,要多多查资料吗,使用google,了解业务逻辑,明白输入和输出是什么。
python中pandas读取不同格式的文件,具体使用规则查询文档
当读取绝对路径文件,路径中含有中文时报错:OSError: Initializing from file failed
1.1.3 任务三:每1000行为一个数据模块,逐块读取(此处存疑)
#写入代码
chunker=pd.read_csv('train.csv',chunksize=1000)
print(type(chunksize))
print(chunksize)
tot=pd.Series([])
for piece in chunker:
tot=tot.add(piece['Pclass'].value_counts(),fill_value=0) # 就是获得key 列各值的个数,,
tot=tot.sort_values(ascending=False)
tot[:]
1.1.4 任务四:将表头改成中文,索引改为乘客ID [对于某些英文资料,我们可以通过翻译来更直观的熟悉我们的数据]
PassengerId => 乘客ID
Survived => 是否幸存
Pclass => 乘客等级(1/2/3等舱位)
Name => 乘客姓名
Sex => 性别
Age => 年龄
SibSp => 堂兄弟/妹个数
Parch => 父母与小孩个数
Ticket => 船票信息
Fare => 票价
Cabin => 客舱
Embarked => 登船港口
#写入代码 header是表头属性 设置索引后就不额外加索引了 不设置header 就把第一行当算入数据了,设置header,第一行不计入数据
data=pd.read_csv('train.csv',names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
data.head(5)
查看数据:
#查看信息 查看前10行 查看后15行 判断数据是否为空,为空的地方返回True,其余地方返回False
data.info()
data.head(10)
data.tail(15)
data.isnull().head()
#保存文件
# 注意:不同的操作系统保存下来可能会有乱码。大家可以加入`encoding='GBK' 或者 ’encoding = ’uft-8‘‘`
data.to_csv('my_train_chinese.csv')
后续第二节与第三节代码与记录会进行更新,本文参考datawhale组对学习,开源链接:
https://github.com/datawhalechina/hands-on-data-analysis
参考教程:https://seancheney.gitbook.io/python-for-data-analysis-2nd/di-05-zhang-pandas-ru-men#dataframe